VBA会被Python代替吗?

VBA和Python都可以处理Excel,VBA和Python各有什么优势?
关注者
369
被浏览
546,656
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

我有几万行的vba代码经验,我有上万行JavaScript代码经验,我也有几万行的python经验。

我先说结论,就我个人而言会被替代。

vba在处理数组 list,字符串 string,字典dict 方面,网络请求方面,像屎山一样,速度慢,灵活性差,内置函数几乎等同于没有。网络请求一直用缓存,服务器都正月十五了,vba还以为服务器在过年……

之前我以为vba会被JavaScript取代,因为那时vba有个MSScriptControl.ScriptControl对象,可以执行js函数。

在没有遇到js 没有被封装 Lodash库和 underscore 之前,JavaScript像一推狗屎一样,出了 Lodash库和 underscore 之后,JavaScript 就变得像一坨狗屎一样。

面对 屎山和一坨狗屎,我更愿意处理选择一坨狗屎。那时候我封装了很多用vba 调用 JavaScript的函数,用来处理数组,但是从 office 2017开始 和 windows10,我封装JavaScript函数全部有的电脑能用,有的电脑不能用,因为微软不支持 MSScriptControl.ScriptControl对象 对象了。

我就崩溃了,我零零碎碎的弄了好几个月,从此我不再用 JavaScript 和 vba 对接,选择了用vba和python对接。

但是 python 的主流Excel库:xlwings 和 Excel 交互性并不友好,必须 Excel 文件是python打开的才能处理,这样很吐血。

我就琢磨着怎么对接,我用 Nginx 和 python fastAPI 和 python pandas做了一个处理vba数据的服务器。

只要你能联网,你连python都不用安装,你可以是10年前的破机器也能处理很复杂的数据,理论上再全世界都可以用vba使用python函数,而且我创建任何新函数,只要改python源码就行了,vba代码连动都不用动,我在山东改好了,你在北京打开不需要同步excel直接就能用。而且不需要关闭excel,现场处理。

并且不用安装任何插件,部分代码如下,白色的vba代码,黑色的 python 代码:代码的ip被我改成127.0.0.1了,因为我那个阿里云服务器带宽太小啊,哎,不想暴露啊



反正现在我是极少用vb处理数据,我看着就恶心和反胃,全用 web api 去调用python

我也很少写vba函数了,因为我写好了还得先导出,然后发送给别的电脑,然后再导入给别的excel用,好麻烦呀。我直接在改python源码,然后记住新函数名,在别的vba输入一行就能用。全世界vba都能用多方便呀。

但是很多事情还得vba自己做,比如以下代码,就是创建一个 excel 内部的窗体,或者填充单元格啥的:


最后奉劝,学 python 啊, vba 就是个屎山,换个操作系统,换个版本我封装JavaScript函数就全废了,我当时骂了好几天啊!

迫不得已选择了python,另外别听他们瞎说配置python很复杂,就3步:

1.直接下个python安装包,别搞什么PyCharm Spyder

2.在cmd 直接输入:pip3 install --upgrade jupyter

3.打开浏览器输入 127.0.0.1:8888/tree/ 就能用

就能用了,环境变量都不用设置,先入门了,以后 PyCharm ,VScode,Sublime Text 爱用啥用啥。