数据量大更建议用Python,vba一般都是将数据存放在内存中,当数据不拆分电脑配置又不高,就会显得比较卡,数据处理完毕后,不释放下内存电脑用起来也会比较卡,vba一般只会启动2个cpu核心进行数据计算,运算效率也比较低,现在微软已经停止对vba的更新,更建议学习Python,如果只是操作excel,这两个学习难度差别不大,但是Python发展空间会更好
还有一种更加便捷的方法,就是使用power bi的三大组件进行数据处理,使用power query进行数处理,powerpivot进行分析,power view进行数据可视化,优点就是学习周期短,数据可实现自动刷新,上手比较快,使用这个方法,效率可能会比excel快一些,但是速度仍然不及python,当然了为了长久可持续更建议学习Python,但是上手周期会比较长
其实两者皆可,15000行数据来说,根本不算多,前面几个都在推荐vba,这里我重点介绍一下python是如何处理excel的,涉及xlrd/xlwt、openpyxl和pandas,感兴趣的朋友可以尝试一下:
基础模块xlrd/xlwt
这是python比较基础的2个excel处理库,相信许多朋友都听说或使用过,xlrd专门用于读取excel数据,xlwt专门用于写入excel数据,常见的工作表、行列、单元格等基本操作,这2个库都可以轻松搞定,数据量比较多、内存不够的情况下,可以先读取一部分数据,处理完成后,再读取下一部分数据,这样电脑就不容易卡死,效率也能更高一些:
简单易用openpyxl
这也是一个比较常用的python excel处理库,和xlrd/xlwt一样,openpyxl也可以轻松进行excel读写,支持按行按列读取/删除数据、单元格合并/拆分、插入图表/图片、调用函数/公式等基本操作,只不过仅兼容xlsx/xlsm 2种格式,较早的xls读写会出错,数据量比较多的情况下,也可先读取一部分,处理一部分,循环递归,直到所有数据都处理完:
VBA能操作Excel,Python也可以。
和VBA相比,Python的本领更大,能干的事更强,当然,学习和付出的成本相对也更多。而且Python是一门单独的编程语言,它面向的用户也不仅仅是Excel用户。
而VBA是Excel内置的功能,在Excel中操作和使用也更简单和方便。不需再安装第三方软件。而且,网上用VBA操作Excel的代码和资源更多,找到稍加修改就能使用。VBA的本领可能没Python强,但操作Excel却更专业。
那么,倒底应该学什么?
举个例:你只想开小车上班,只需C照就行了,但你会去花更多精力学A照来开小车吗?
你好,我是一个开发人员,有多年的开发经历。操控excel,选择Python还是vba,大家可能都会从语言的强大功能上,语言的热门程度去推荐使用哪个更好。
但是我认为,使用微软的产品,最好使用微软的工具。因为这样适配性更好,不会出现一些让你无法解决的难题。而解决问题,会耗费你大量的时间
所以我推荐使用vba,如果你问除了vba,你最推荐哪个语言,我推荐powershell。
您好,很高兴在这里交流。
首先,VBA与Python都是可以对Excel进行编程控制的。
在当下,学习Python相对于VBA,应用场景会更广阔一些,很容易扩展到机器学习,图像处理,数据可视化,时间序列,数据分析等应用当中。
对于Python处理Excel数据,不得不提典型的数据处理库pandas.
其中的方法涉及到,多表拼接,合并,透视表,可视化图表,以及对大数据量的处理(千万级)。
最近在分享VB方面的东西,看到这么多,也来凑个热闹:
1、Python通过COM接口与Excel交互,到Excel进程中已经是现成的二进制机器指令了。而VBA还是解释执行,编译对解释,比较也不公平吧。要比较,用VB封装成同样的COM加载项,再来比较。
2、即便是VBA的逐行解释执行,区区15000行数据,怎么会卡?不说以前只有2^16行,就是现在2^20行,也没卡过。如果卡,多半是Excel默认了自动重算,而使用者又没有指定重算范围,人家在老老实实的全部重算呢。
3、数据量大了,为啥还在Excel中处理?几百上千万行数据,在Access中与Excel自动交互,都在秒内,甚至都不需要写代码。
4、Excel还自带数据库功能呢,那也是秒内级的工具。
只要编程,就别上微软的贼船。
推荐python
首先,我们先说说Excel 主要优点:
1)数据透视功能,一个数据透视表演变出10几种报表,只需吹灰之力。易用性,一个新手,只要认真使用向导1-2小时就可以马马虎虎上路。
2)统计分析,其实包含在数据透视功能之中,但是非常独特,常用的检验方式一键搞定。
3)图表功能,这几乎是Excel的独门技能,其他程序只能望其项背而自杀。
当然用Office系列软件中自带的vba好些。
vba更适合EXCEL,毕竟是内嵌的。