如何编写VBA代码?

HI,大家好,我是星光。

前面两期分别给大家聊了什么是VBA、什么是VBE,今天再给大家聊一下如何编写VBA代码——看我小眼神……这事说起来可有意思了。

编写VBA代码常用的方式有三种。

第一种方式:复制粘贴

耸肩摊手,说这话俺是认真的。要知道搜罗优秀代码、复制粘贴化为己用是编写程序的基本能力,是程序员不可或缺的左膀右臂,不管你是新手还是高手,天下代码早晚都不过一个抄字——不过咱们得知道哪些能抄?哪些不能抄?哪些抄了之后必须要修改。说到这就不得不推荐一下咱们的VBA常用代码合集了,随时用随时抄,公众号戳【菜单】→【资源礼包】→【VBA常用代码】即可获取。

第2种方式:自己写

自己写的意思就是打开VBE,在模块等对象的代码窗口内自己编写VBA代码(这是一句废话)。复制粘贴固然属于天下无双的神技,但并不适合细节迥异的具体问题处理,所以至少你得知道代码的逻辑是否正确;结构是否合理;局部的代码应该如何修改——而有些时候,修改别人的代码,还不如自己重新编写来的爽快。
第3种方式:录制宏
录制宏的意思是让勤快又善良的Excel帮咱们自动写代码。对于VBA初学者来说,最烦恼的事情莫过于Excel的对象太多了,每个对象的属性和方法又太多了,层层叠叠,头大的让人记不住——其实完全没必要记住,想要知道某个对象的属性和方法?根据需求录制一段宏,查看下Excel自动生成的代码就一目了然了。

比如说,你想要知道如何使用VBA代码设置单元格边框线以及标题行文字加粗并居中显示,可以使用以下操作。

步骤1:在【开发工具】选项卡下单击【录制宏】命令,打开【录制宏】对话框。根据需要在【录制宏】对话框的【宏名】文本框中输入宏的名称,当然也可以保持默认值不变,然后单击【确定】按钮。

步骤2:设置A1:D10单元格区域的边框线为所有边框线,将A1:D1标题行的字体加粗并居中显示。最后在【开发工具】选项卡下单击【停止录制】命令,结束录制宏。

步骤3:按<ALT+F11>快捷键打开VBE窗口,在模块中即可看到Excel自动生成的VBA代码。

以上代码看似繁杂混乱,但如果您已有一定的VBA编程基础,还是不难从中分辨出哪些代码是设置边框线,哪些代码是设置字体加粗和居中显示的;而我们只需要复制相关代码,稍加修改即可直接使用。

当然,录制宏的作用不止如此。

有一些朋友,出于各种原因无意深入学习VBA,却又希望借助VBA提升工作效率,甚至实现数据处理自动化——当然也是可以的,这就是民间流传的录制宏+函数公式的老男孩组合。

借助录制宏,我们可以使函数公式自动输入,进而实现数据处理的自动化。

我举一个简单的小栗子。

如下图所示,有两张表,一张表是数据源,一张表是查询表。咱们需要制作一个数据查询的模版;在查询表的B列,计算A列人员对应的考试成绩——你会怎么处理呢?

步骤1:在【开发工具】选项卡下单击【录制宏】,打开【录制宏】对话框,在【宏名】文本框中输入内容:我的查询,并【确定】。
步骤2:在B2单元格输入以下函数公式:

=IFERROR(VLOOKUP(A2,成绩表!A:B,2,0),'')

向下复制填充到B2:B5000单元格区域;然后复制B2:B5000单元格区域,使用选择性粘贴为数值的方式,将公式计算结果粘贴为数值,最后停止录制宏。

如此一来,Excel就自个生成了一段代码,这段代码的作用是自动使用VLOOKUP函数查询A2:A5000单元格范围内的人名在成绩表中的考试成绩。

于是新的问题来了——如何运行这段VBA代码?

事已至此,我就不得不说一句——————

欲知后事如何,且听下回分解
致安,愿你不再因Excel而烦恼,我是星光,挥手再见。
(0)

相关推荐