返回目录:excel表格制作
其实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一起使用的案例,有学习疑问也可以私下交流。
我之前也尝试过学VBA,后来用了Python,VBA却一直没学会。个人建议还是学Python好,主要考虑以下几点:
上手难易度来说,Python 容易一些。我试了一段时间VBA,想做一些自动化工作,感觉非常麻烦,所以干脆放弃了,而Python是一套很标准的编程语言,逻辑很清楚,学起来很快。当然,也有可能我方法不对。
学习资料上说,Python非常丰富,VBA比不上。
之后写代码的容易程度。这一点Python完胜,就算在编程语言中,Python也可以说是使用最方便,实现脚本需求最快的语言。
对日常需求的满足程度。VBA肯定能满足Excel操作的所有需求;而Python操作Excel主要使用xlrd、xlwt模块,我个人使用的经验是,设置单元格格式比较麻烦,当然,我不清楚VBA中是不是也这么麻烦。
未来的扩展能力。毫无疑问,这一点也是Python完胜,Python作为一门脚本语言,在工作的各个场景中都很有用处,数据处理和分析,文本处理等,都有很常见的自动化需求。
其实,之前有很多人提议微软的office直接支持Python编程,好像微软已经接受了这个提议,只是具体实现尚需时间。从这个角度来说,这时再学VBA,就有点像49年加入国民党了。
供参考!