办公自动化是学习Python还是VBA的这个问题,其实办公自动化是个很广的命题,在这个命题下Python毫无疑问是首选,毕竟很多办公自动化的场景VBA根本无力涉及,比如要求批量把图片转化为文字怎么办?VBA一筹莫展但是Python调用OCR算法即可实现。但是针对VBA用处最大的office办公自动化该如何选择呢?我们从下面6个方面进行对比。
1、 学习效率
Python远胜VBA。
Python以语法简洁、易学著称,学的快本身就是python语言相对其他语言的卖点,但是Python学的快的主要原因还是学习生态完备。一方面python学习资料丰富,有非常多的Python优秀教学资料,但是VBA学习资料较少,少量的资料主要集中在excelhome等论坛上,资源获取广度和限质量无法和Python相比。另一方面在编程学习中最头疼的是各种Bug的调试,作为最热的编程语言之一,python中你可能踩到的坑,大量的专业编程人员都已踩过并在网上分享了大量的资料,VBA主要是非专业人员使用的小众语言,近年也不再是热点,学习中的Bug很难找到现成的解决办法。
2、 开发效率
Python远胜VBA。
首先最重要的原因说三遍,Python库多、库多、库多, Python相比VBA开发最大提升效率的杀手锏就是库多,很多VBA需要自己实现的功能已经在标准库或者第三方库里实现,不必重复造轮子。其次Python热度高,生态完备,需要的功能大部分可以网上找到现成的类似程序,自己加以修改即可,可以大大加快开发效率。最后Python语法简洁本身需要的代码量就少,提高了开发效率。
用一个合并多个excel的代码对比一下,Python利用其强大的库和简洁语法明细提高了开发效率
Python代码
import glob
import pandas as pd
flist=[i for i in glob.glob("E:\*.xls")]
d = pd.concat([pd.read_excel(i,header = None) for i in flist],axis=0)
d.to_excel( "comb.xls", header = False,index=False, encoding='utf-8')
VBA代码(来自知友 @武旭鹏 )
Sub 汇总数据()
Application.ScreenUpdating = False
Dim wb, wb1 As Excel.Workbook
Dim sh As Excel.Worksheet
s = Split(ThisWorkbook.Name, ".")(1)
f = Dir(ThisWorkbook.Path & "\*" & s) '生成查找EXCEL的目录
Do While f <> "" '在目录中循环
If f <> ThisWorkbook.Name Then '如果不是打开的工作簿
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & f)
wb.Worksheets("sheet1").Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ActiveSheet.Name = Split(wb.Name, ".")(0)
wb.Close
End If
f = Dir
Loop
ThisWorkbook.Worksheets("汇总").Activate
Application.ScreenUpdating = True
End Sub
3、 拓展能力
Python较强。
Python扩展性强、不局限于Office环境,虽然Office+VBA也是图灵完备理论上可以实现python 能实现的各类功能,但是需要用到各种奇技淫巧,对普通人来说不具备可操作性。例如Python可以轻易实现excel和xml、html、数据库、json等数据连接,可以方便的控制操作系统、可以相对容易实现excel和web、动态表等的互动等。
4、性能
Python强。
虽然Python的性能在主流语音中就是个弟弟,甚至作为一种动态语言纯Python连VBA都打不过,但是加上各种C扩展库后,吊打VBA还是没问题;Python也可以更方便使用多进程、多线程等对程序进行加速。超过十万行的excel打开运行就很困难,但是python毫无压力。
5、 共享和部署能力
VBA完胜。VBA直接基于office三级套,无需其他环境部署,无需安装依赖库,可以将带VBA的文件直接拷贝给同事完成共享。VBA的缺陷在于对于linux系统的跨平台部署赶不上Python,但是对于普通用户这个微不足道。
6 VBA的优点
Vba最大的优势,宏功能。通过宏功能录代码,然后修改,快速成型一个粗糙但是能用的功能,是VBA最大的优势。毕竟都用VBA写代码了,使用者也不必在追求什么代码之道之类的东西了,能动起来、省下对着office繁琐操作的功夫就是成功了。
VBA 对不常用office对象的支持肯定是强于Python这种以通过COM接口的方式调取Office对象的。
VBA是五金工具的话Python就是车床,五金工具使用熟练的老师傅是可以完成机床的功能,但是要说功能完备还是的车床。五金工具的优势是在个别特别适合他的场景,比如钉个钉子等,VBA的也在他的特殊场景有优势,如可以录制宏、适合对不懂编程的人分享等。
VBA在20年前是独一无二的办公利器,但是随着时代的发展,特别是xlwings、pandas等库的发展,Python已经对VBA形成强大的替代作用。目前VBA的优势主要在宏功能和对特殊office对象的支持上了。
以上就是“一文解惑!office办公自动化学Python还是VBA”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。