这是《Excel VBA:办公自动化》教程的第9节,介绍录制宏。
1.认识VBA:什么是VBA?
2.这些掌握了,你才敢说自己懂VBA
3.VBA变量5年踩坑吐血精华总结
4.VBA中重要的强制申明,谁看谁明白
5.VBA掌握循环结构,包你效率提高500倍
6.精通VBA分支结构,少写程序100行
7.VBA程序报错,用调试三法宝,bug不存在的
8.VBA字符串介绍,这篇就够了
我们回顾下之前的内容,主要涉及到变量、强制申明、For循环结构、IF分支结构、程序调试以及重要的字符串知识等内容,可以看到我们已经学到了很多实用性的VBA内容。
有些同学就在社群里问我:猴子,你分享的这些内容非常的详细,可是工作中我自己实用的时候总有一定的难度,不知道如何去运用这些知识?
听到这位同学的疑惑,我真诚的装了一波:无他,唯手熟尔。
这位同学又说:是的这个道理我也明白,但是由于知识点的学习和反复刻意的练习需要一定的周期。在实际工作中,我想到了如何快速自动化处理相关数据,但是由于实现那些想法的知识点还没有学到,所以也就无从下手了。
又一个天台式微笑,兄dei儿,录制宏就专门解决你的这个问题的。
1.什么是录制宏?
简单来说就是,Excel记录下我们在Excel中所有的操作,然后翻译为VBA语言。
2.录制宏实操案例
案例:将全球富豪榜TOP10中的贝左斯「删除」,身价在900-1000的富豪姓名「披红」显示。
实现以上业务需求,需要下面3步:
1)循环扫描B列每个富豪的名字
2)如果发现贝左斯这个字符串,就执行「整行删除」操作
3)循环扫描C列每个富豪的身价,发现身价在900-1000的符号就执行「披红」操作。
我们可以看到,业务操作步骤非常清晰。但是有小伙伴就说,「循环扫描」利用前面学过的「For循环」可以轻松的完成,可是后面的「整行删除」和「披红」没学过,确实不知道如何处理?
关于这些不会写的操作,我们可以通过录制宏轻松处理。
(1)将上述代码的思路框架写出来
关于建立「宏按钮」、关联宏程序等操作之前系列里讲过了,这里就不再描述,相信大家都能够直接操作。我们直接将上面的思路代码放在下面。
可以看到,和以往单一知识点的单独使用不一样,由于本次既要循环又要判断,所以我们在「For循环结构」内部嵌套了2个「IF分支结构」。
而这种用法就是大牛们经常说的「嵌套结构」,它是VBA知识点综合运用的一个体现。
但是,代码中的「删除」和「披红」部分内容我们不会,因此需要「录制宏」来解决。
(2)录制「整行删除」操作
- 依次点选「开发工具」-「录制宏」,开启录制宏程序
我们按照①②操作后,系统会自动弹出「录制宏」窗口,此时我们默认弹出窗口的所有默认选项,点击「确认即可」。
- 手动执行删除操作即可
此处大家需要注意一下,由于我们已经开启了录制宏的小程序,因此仅操作需要录制的代码,其他的操作尽量不要做。
比如,这里需要录制「删除」操作的代码,那么我们按照图片执行删除的手动操作即可,其他的动作尽量不要做。
- 关闭「录制宏」,系统将不再记录任何操作
当我们手动操作完后,一定要记得关闭「录制宏」功能。
- 依次点选「开发工具」-「Visual Basic」查看录制的代码
我们按照上述操作打开后,可以看到,系统自动生成一个名为「模块2」,然后在该模块下生成了名称「宏1」的小程序。
备注:录制宏过程中,系统会自动生成一个新的模块,该模块放置了我们录制的宏代码。
- 查看录制的代码
虽然里面有很多我们不懂的语法,但不妨碍我们的分析,结合上图标出的序号我们一起看下。
①表示录制了一个名为「宏1」的小程序。
而②代码中的「Rows」英文表示行,「"5:5"」我们刚刚的操作是选中第5行,那它应该是第5行的意思;后面的那个「.」经过查资料我们知道是动作或是属性;最后的「Select」英文表示选择的意思。那么这句话应该表达的就是选中第5行的意思。
在③我们看到了英文单词「Delete」,虽然我得英文单词认识的不多,但是我知道这是「删除」的意思。
通过以上的简单分析,我们应该就知道上述代码表述的就是「删除固定行」的操作。
(3)复制录制「删除固定行」的代码填充到前文的代码框架中
我们将代码粘贴到原来的代码框架中,调试后发现,这个代码有问题,永远都是删除第5行,如果「贝左斯」不在第5行,那不就操作错了吗?
是的,我们需要根据上文IF的判断,删除对应行,而不是固定的第5行。
我们对上述代码,做一下小修改就可以。
有同学肯定有疑问,此处的变量「i」是数字,而「:」是字符串,二者怎么能够联合呢?况且,表示选中第5行的「Rows(“5:5”)」括号中的是字符串。
没错,在VBA中通过连字符「&」,与字符串进行连接操作的任何数据类型,都会自动转为字符串。
运行修改后的代码
查看运行效果
我们可以看到,以及达到了预期的设定结果。
3.总结
录制宏就是让Excel记录我们的手动操作,然后将代码简单修改,快速的应用到我们的工作中。
怎么样?是不是很简单?
最后,案例中对身价在900-1000之间的富豪名称的「披红」操作内容还没有填充,赶快使用「录制宏」功能进行实操吧。