excel|依然还有很多人在用过气的VBA处理Excel


excel|依然还有很多人在用过气的VBA处理Excel

文章图片

【excel|依然还有很多人在用过气的VBA处理Excel】
excel|依然还有很多人在用过气的VBA处理Excel

文章图片


excel|依然还有很多人在用过气的VBA处理Excel

文章图片


excel|依然还有很多人在用过气的VBA处理Excel

我说VBA过气了 , 相信会有很多人会开始对我口诛笔伐 。 VBA曾经确实辉煌过 , 要知道十几年前就连AutoCAD、CorelDRAW也一度非常支持VBA宏 , 后来AutoCAD回归到了Lisp的怀抱中 , CorelDRAW也认清了要平面设计师写宏命令是一个非常不切实际的奢望 。

VBA的老大哥VB已死 , 而小弟Small Basic只能堪当玩具肩负教育的责任 , 从Small Basic首页奇葩“SB”字样的乌龟人标识就可以看出它注定不能成为一个生产工具 。

Office Scripts才是微软所看好的未来 , 而VBA仅允许苟活 。 在Office Scripts还没有支持桌面版的Excel的情况下 , 放弃VBA直接改用Python无疑是更好的选择 , 学成之后还能从一个会写宏命令的屌丝摇身一变成为一个“大数据工程师” 。
VBA在Excel里的作用VBA是一种宏 , 但宏未必就一定是VBA 。 宏源于“marco” , 是一种批处理的称谓 , 指将小命令、动作转换为一系列的指令 。 VBA可以减少Excel很多重复性的工作 , 让Excel简易化、自动化、智能化 , 这样Excel就可以完成它自身功能无法完成的复杂的任务 。

VBA是基于Visual Basic(VB)发展而来 , VBA是VB的子集 , 所以它们具有相似的语言结构 。 VBA的出现主要是用来扩展Windows自带软件的功能 , 特别是Office软件 。 1994年集成了VBA宏命令的Excel 5.0发布之后 , Office起飞了 , 可以说Office之所以能够占据这么大市场份额很大一部分原因在于VBA , 有了VBA之后Office能做的事情就多得多了 , 对于很多使用Word、Power Point、Excel的人来说 , 掌握了VBA就可以让复杂的工作变得简单 , 也可以减少很多不必要的重复性工作 , 大大提高工作的效率 , 所以就有人很形象的将VBA比作Excel的“遥控器” 。

在互联网时代到来之前VB依靠着“所见即所得”的开发环境成为了一款巅峰时期拥有300万开发者的热门桌面开发工具 , 和Windows的强强联合使得VB很长一段时间都对竞争对手保持压制的态势 。 但互联网时代到来Java等语言开始兴起 , VB的优势逐渐丧失 , 于是微软推出了.NET并发布了.NET版的VB、C# , C#逐渐取代VB , 导致最后很难找到VB源码示例 。 最终微软在2017年宣布VB终结的命运 , 既然老大哥倒下了 , 可想而知VBA的命运也不会好到哪里去 , 在程序员的鄙视链中“汇编>C>C++>Python>Java、C#、PHP>VB>HTML”甚至都找到VBA的身影 。
Python为什么比VBA香?VBA在过去确实很香 , 有特有的录制宏功能 , 可以和Office完美的结合 , 拥有完整集成的开发环境 , 语法成熟固定没有开源语言的升级烦恼 , 另外它也没有碰到过强大的竞争对手 。 但有了Python、C#、Java做对比之后就发现VBA的语法功能单一、代码量大 , 可扩展性很长 。 尤其是涉及到操作Excel外的对象 , 就需要写非常多的代码了 。

Excel使用Python之后可以享用Python生态系统下面的一切工具 , 尤其是数据处理这块 。 比如可以用Pandas数据套件来处理Excel , 可以在任何你喜欢的编辑器里写Python脚本 , 记事本都行 , 这样我们就再不用碰陈年难搞的VBA编辑器 。

Python的宏脚本可以版控、集中整理 , 而不会随着Excel文档散落在其他地方 , Python脚本还可以透过xlwings调用Excel公式 。
总结VBA到如今依然算是办公利器 , 也依然有很多人在使用VBA 。 VBA确实过气了 , Python确实是比VBA要强大太多 , 效率也更高一些 。 但有句古话“杀鸡焉用牛刀” , 仅仅如果只有几千行数据 , 还要搭个Python环境就显得有些过了 。