我应该用Python代替VBA吗?
我正在做一个演示(可能还会做一个小应用程序),是关于财务会计模型的。我用VBA/Excel来输入数据(比如用表单),进行计算和展示结果,同时也通过VBA程序向MS Access数据库发出SQL查询。原则上,这些组件的功能对我来说还算不错(我知道VBA有点过时了,使用起来也不是特别顺畅)。
我已经做这个一段时间了(我是一名工程师,有一些其他语言的古老经验,虽然从来没有作为程序员工作过),对这些事情基本上掌握得不错,能找到我犯的编程错误。不过,当出现一些看起来并不是我造成的错误,而是VBA本身的不稳定或缺陷时,我真的快要崩溃了。
所以我想问的是,作为一个完全没有Python经验的人:我能否用Python实现我上面描述的功能?你能告诉我Python是否比VBA/Excel更稳定,出错的几率是否更低吗?(我在用Windows 7)非常感谢你的建议。
2 个回答
我强烈建议你使用Python来做这个。Python已经成为数据分析的标准工具。微软正在考虑把Python
加入到Excel中:https://news.ycombinator.com/item?id=15927132
尽管如此,你在VBA
中能做的事情,使用Python也都能做到,而且还可以做得更多,以下是一些相关的库:
Xlwings
: https://github.com/ZoomerAnalytics/xlwingsPywin32
: https://github.com/Googulator/pypiwin32Pyspread
: https://manns.github.io/pyspread/Xlswriter
/Xlsread
在这些库中,我建议你使用xlwings
。我用过这个库,效果非常好。你甚至可以通过Python代码来执行VBA
。这样你就可以享受两全其美的好处,也就是说,你可以在Python中使用任何数据分析的工具来进行计算,当你需要的时候(但没有访问VBA
提供的功能,而这些功能在xlwings
中不支持),你可以直接调用Excel中的VBA
函数。
如果你决定用Python来自动化Office应用程序,可以看看Python Win32扩展。
不过,我对此有点怀疑。因为你需要先安装Python并学习它。而如果你打算把这个应用程序分发给其他用户,他们也需要安装Python。
而且,你提到的关于声明变量的例子说明,你花时间去学VBA和你想自动化的Office应用程序的对象模型会更有帮助。在那个例子中,你把对VBA基础知识的不理解误解为“VBA容易出错”。其实,Python并不能解决这个问题。