其实Vba和Python作为语言来比较,没有特别谁比谁好的。比如下面是许多人列出的对比:
Python资料多。其实你用Vba可以通过录制宏得到大致的代码
Python语法简单。其实编程语言来来去去就那么几个基本语法,说语法知识点的话,Vba的语法数量更少(因为他是一门很久没有更新的语言)
Python的库多。这是真的,Vba没法相比。
这样看起来,感觉好像Vba会好一些,其实你的问题应该从2方面去做考量。
一,操作Excel为主如果你的工作需求都是可以通过Excel内置功能完成,那么 Vba 会更加方便,你编写代码方便,就意味着你更容易学习。
比如:批量设置多个工作表的格式,简单调用Excel内置排序功能完成数据排序等等
如上这些需求其实都不涉及复杂的数据处理,完全是调用Excel内置功能即可完成,因此使用Vba只需要简单录制宏,通过基本语法即可完成自动化。
二,数据处理为主当你需要进行数据处理的时候,那么Vba平台就显得很笨重。一旦数据量上千过万(这数量级实际很小),你就需要学习数组、字典这些知识才能完成任务,这里面的学习量就很大。
比如:某学校考试超过全校平均成绩的学生列出来。
就这么一个简单的需求,你要用Vba完成,代码量不会少,如果你在代码中使用函数公式,代码逻辑会不清晰,并且数据量上千后,速度会很慢。如果你用数组处理,代码量会多起来。
如果你学习python,并且会一点pandas库的知识,这种需求就一两句代码解决的事情,并且代码逻辑清晰。
因此,如果你的工作任务涉及这种数据处理需求,那么建议你学习Python。随着需求难度升级,如果你用vba,不是说不可以解决,只是说你可能会疯掉。
三,操作Excel + 数据处理你的情况可能是既要操作Excel,又有数据处理。那么建议你先学习Python,因为操作Excel其实可以使用Python的xlwings库完成,操作逻辑的代码同样可以通过录制宏稍作修改即可使用。
而且,当你学会python,其实学习vba是很简单的事情,因为你不需要考虑用低级结构(数组,字典这些)去处理数据。
最后顺便提醒一下你,其实Python语言在数据处理上本身没有啥特别优势,但是Python作为一个平台,他有许多优秀成熟的第三方库,那些库才是你的学习重点。千万不要把宝贵的精力用在低效的地方
你可以去看看我的头条号的文章,非常多关于数据处理的文章,也有一部分是结合Vba与Python一起使用的案例,有学习疑问也可以私下交流。