还自己写代码?VBA录制宏了解下

2020-11-23 10:24:21 浏览数 (1)

这是《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之间的富豪名称的「披红」操作内容还没有填充,赶快使用「录制宏」功能进行实操吧。

0 人点赞