excel vba自学可以学会吗?



作者:Excel到PowerBI

关于excel vba自学是否可以学会的问题,首先答案是“肯定可以”。

但问题是,你为什么要学?你可以花多少时间和精力来学?

首先,说一下为什么要学的问题

前面有个回答说,1个工作簿,里面有100个工作表,希望将每个表里的数据汇总到一起,然后花了10分钟写代码,1分钟运行搞定……所以说要学VBA……

其实,这个根本够不成学VBA的理由。

对于同样的问题,现在用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件),如果数据都在1个工作簿内,根本不需要写任何代码,普通用户鼠标操作1分钟就能直接完成,如果是多个工作簿,也只需要一个简单的函数就搞定。步骤如下:

1、多工作簿的情况下,从文件夹获取数据(如果是一个工作簿,直接从工作簿即可)

2、用函数Excel.Workbook([Content])解析出所有工作簿的数据(如果数据都在一个工作簿内,本步骤可以直接省略)。

3、展开所有工作簿中的所有表(如果是1个工作簿,本步骤也不需要)

4、展开所有表中的所有数据

通过以上简单4步,所有工作簿的所有表数据均已整合到一起,如下图所示:

对于已整合到一起的数据,后面再通过简单选择列和按需要筛选数据即可达到需要的效果,都是鼠标操作,非常简单。

从上面的例子可以看出,通过对Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)的掌握,在绝大部分情况下,根本不需要使用VBA,因此,对于普通用户来说,我建议在考虑学VBA之前,先学Power系列的功能,不仅简单易学,而且功能强大——自从用上Power Query,我现在已经极少使用VBA写代码了。

然后,再看一下学习VBA需要耗费多少时间和精力

现在,网络上有很多说VBA很简单,可以几十天从入门到精通的文章和、图书和视频,如果你真的相信的话,那我建议你不要去学,因为这说明你没有编程基础和经验。

学习编程最重要的是“磨练”编程思维和能力,这是一个十分漫长的过程,在写程序的过程中,很多老司机都会为了一个小小错误可能要花几个小时甚至几天的时间来找到原因,更不要说是新手。

之所以那么多程序员都是夜猫子,因为程序有bug没调试完睡不着!因为只有夜深人静的时候,才能最大程度集中精力发现问题和想到解决办法啊!

你以为程序员都是“高富帅屌炸天”!但实际上可能大部分都是“腰腿疼黑眼圈”:

最后,再回头看一下学习VBA这个问题,核心仍然是:你为什么要学?你可以花多少时间和精力来学?——我始终认为,如果你本身是一个已经参加工作的编程小白,那更加要慎重的考虑,我通常是会直接建议放弃的,虽然我曾经是VBA的重度用户,但现在我真的建议大家先考虑Excel的Power Query、Power Pivot等新功能。


0