1,
没有比较就没有伤害,板凳瓜子小黄书拿出来,是时候让VBA和函数和Power BI和Python大战一场沉冤昭雪了。
先来说函数。
很多年以前,Python还没火,Power BI还没出生,大数据时代还没有拉开序幕,Excel版本的主力还是古老的03版,大家接触的数据量还不大,一张表几千行数据就显得很多了,数据的来源和处理的内容还很单纯,VBA的主要竞争对手便只是Excel自身的函数公式,大家会点儿常用函数就足以解决工作中90%的问题,所以就流行一个观点,叫做:
VBA无用论
不可否认,函数是个好东西,小巧灵是它最大的优点,但计算效率低下的缺陷决定了它的上限,它只适合小范围数据的腾挪躲闪。你让它处理十几万甚至几十万行数据试试?你让它处理word文件内的数据试试?你让它自动把多个工作簿的数据快速汇总成总表试试?你这是在羞辱函数,还不如直接干脆杀了它。
而号称函数精华的数组公式,烧脑至极的数组嵌套,毫不客气的说,往往抵不过VBA最基础的两层循环……
事实上,当有人抱着函数大声说VBA无用,VBA其实是不屑一顾的。
……
后来微软推出了Power BI for Excel(以下简称Power BI,但请不要完全和Power BI桌面版混为一谈),Power BI也是个好东西,特别擅长数据分析与可视化,于是很多人又开始宣传Power BI比VBA厉害一万倍,学了Power BI完全就没有必要再学VBA了,意思无非还是VBA无用。
我充分理解大家对新生技术趋之若鹜的心理,也非常明白某些人先人一步入门新技术后的自大盲目的臭毛病,更知道某些讲师为了自身利益刻意捧高这项功能贬低VBA的低劣素质,但是老实说,他们真得懂Power BI是什么吗?又真的懂VBA是什么吗?
那可就未必了。
Powet BI是一款用于数据分析和可视化的工具,而VBA是一种可用于数据管理的编程语言。什么是数据管理?查改增删样样都行。什么是数据分析?对于数据源你只能查,你改一个试试?增一条试试?删一行试试?Power BI不行吧?你只能另起炉灶存放数据吧?
再说了,VBA不但能处数据,还能处对象呢。你Power BI修改下单元格对象的函数公式试试?创建个工作簿对象试试?删除个文件夹对象试试?群发个邮件试试?创建个PPT文件试试?自动出Word报告试试?绝望吧?
来啊,父相伤害啊,你说你就一看数据的,你能做的事,VBA都能做,你不能做的,VBA也能做,你还说啥比VBA强一万倍,不是找揍吗?
……
现在Python特别火,于是又出现了一种新的观点,学了Python,就不用学VBA了,恩,VBA无用。
毋庸置疑,Python是强大的,是数据分析从业者必会编程语言之一,但同样毋庸置疑的是,Python绝不是office办公人员必备的选项。坦白的说,在Office的地盘上,即便没有了微软爸爸的资源扶持,VBA也还没怕过谁,Python当然也不例外。
Office软件是VBA天然的舞台,只要有Office就可以随时随地运行VBA代码,Python不行吧?借助Excel,VBA即可拥有简单、实用、自由、强大的数据交互能力,不用封装,老板或同事或客户只需在Excel中编写数据,即可完成复杂的报表工作,Python不容易吧?VBA可以无差别操纵各种版本的Office软件,打通Excel自动数据处理,PPT自动数据呈现,Word自动出数据报告,Outlook自动收发邮件,轻松使四者协同共力,Python受累了吧?你要教老板怎么安装使用Python吗?
……
结论:
大家各有各的优势,但谁也取代不了VBA的优势,所以别动不动就说VBA无用,人家VBA不惹事,但也不怕事,谈,大门敞开,打,奉陪到底,经历过十几年风风雨雨的VBA大哥大,什么样的阵势没见过?在Office的地盘上,你们闹的再凶,那也是个弟弟~。
2,
VBA的强大是毋庸置疑的,但在介绍VBA如何强大之前我们必须得先回答另外一个问题,VBA还能学吗?
作为公众号VBA编程学习与实践的主编,我最近确实经常收到这样的私信:VBA还能学吗?
问话的人,意思我懂,他其实是想说,VBA快死了吧?会不会我才学会VBA,微软就把它给干掉了?那我岂不是白学了?
为什么会有这样的想法呢?
这事说来话还挺长……
其实远在07年,Office2007版刚推出的时候,就有大神发声说VBA要死了,他们认为VBA严重阻碍了Excel结构化革新,阻碍了Excel开源,在下一个版本,微软肯定不会再支持VBA。然后十几年过去了,VBA还活得好好的。
不知道从什么时候开始,微软市场部也有了谁火就蹭谁热点的尿性,JS火的时候,它就跳出来说我们Excel要支持JS了,R火的时候,它就跳出来说我们Excel要全面支持R了,后来Python火的一塌糊涂,它“理所当然”又跳出来说我们Excel要全面深入支持Python了。甚至当时有传言微软将在最后一个单机版本2019版中彻底放弃VBA,全面支持Python……
后来呢,9102年了,你懂得。
当然了,没有什么会是永恒不朽的,VBA早晚也会死,但一时半会肯定也死不了,即便微软不再更新优化VBA,人家天赋摆在那,这么多年了,不一样自食其力活的好好的,甚至可以说是活的越来越好?
再说了,微软不更新迭代VBA也是有好处的。你在03版写的代码,绝大部分放到07/10/13/16/19版本上一样可以运行。反过来亦如是。很少语言有如此强大的能力,对不对?我不是在安慰你,认真脸。
支持VBA的Office2019版都还刚出生,VBA虽然老,但当然不会死,它还可以学,还可以学很久。
3,
VBA大概是这个世界上最易学的编程语言了,容易到很多人不认为它是编程语言的地步。
VBA容易学不只是它语法上的自然性,而是它做的事儿是你再熟悉不过的Excel问题,它只不过把你手动解决问题的过程换了种语言从头到尾描述了一遍,你怎么想的,VBA就会怎么做,仅此而已。
呃?你不觉得VBA有用?
打个响指,举几个小栗子,不是什么大玩意,都是VBA常用小代码即可搞定的事儿。
1),多行表头的表格汇总,同时保留源表格式,你还在复制粘贴?VBA一键搞定~
2),天下数据,有合就有分,选择任意列,一键将总表数据拆分为多个分表,同时保留总表格式~
3),选择数据范围,一键即可将指定文件夹下的图片按指定位置导入Excel。
4),需要将图片批量从网站上下载到本地?VBA可以帮你~
5),需要批量查询网页数据,并下载相关图片和超链接?VBA可以帮你~
6),需要将Word的表格数据自动读入Excel?VBA可以帮你~
7),需要将Excel的数据批量写入Word?VBA也可以帮你~
8),需要制作员工管理小系统?送你一个Excel模版要不要?
……
4,
VBA如此炫酷强大,怎么样才能最快学会VBA呢?
我见阁下骨骼清奇,是我Excel大世界不可多得的修行奇才,我这有一本珍藏多年的绝世秘籍,一直寻不到有缘人,不如收费赠送给你……
拜托,你可以质疑我的诚意,但你绝不能质疑我这本绝世秘籍的真伪。
ExcelHome听说过吧?华语最大Excel技术论坛,大陆Excel技术的发源地,14亿人十几年来也只是诞生了40余位Excel方向的微软全球最有价值专家(MVP),而EH论坛包含了其中30多位~说ExcelHome是Excel大世界的武林盟主那是不为过的。
没错!这本绝世秘籍就是由EH论坛集结六位武林绝世高手合著而成……
周庆麟老师,网名Kevin,ExcelHome创办人,中国最资深的微软全球最有价值专家(MVP)之一,有句话说的好,为人不识周庆麟,打遍Excel也枉然。
郝金甲老师,网名taller,微软最有价值专家(MVP),VBA小世界殿堂级大佬,EH论坛一系列VBA图书主创人。
王平老师,网名wpxxsyzx,EH论坛VBA版块资深老版主,非常痴迷VBA,视为一路同行的终身伴侣。
时坤老师,网名唐伯狼,据说不是唐伯虎的弟弟,EH论坛在线教育学院的讲师,VBA耍的比长的还帅。
罗子阳老师,网名随风,京城人士,人称京城小正太,特长谈恋爱,但曾经为了VBA抛弃女友连续熬夜十二个通宵,奇怪的是发量居然依然还可以……
还有一个就是俺了,这就没啥好介绍的了,我,你不认识?昨晚上咱还一起同宿过的在地球村,没错,在下正是怼天怼地怼空气人称怼怼侠的看见星光,想起来没?
我们这本VBA绝世秘籍从EH论坛百万帖中筛选精华,历时365个昼夜精心雕琢而成,适用于各个层次的VBA学习爱好者,既可以作为初学者入门,也可作为中、高级用户的参考手册,内容涵盖了VBA基础、Excel对象、窗体与控件交互设计、文件系统操作、数据库应用、网抓、封装等等……
更重要的是,书中大量示例代码及文件还适合读者在工作中直接借用,比如上述大量动图示例,最后一个员工管理小系统,在图书示例文件中即可直接获取。另外各种窗体和控件制作均可取之即用~
领取专属 10元无门槛券
私享最新 技术干货