前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还自己写代码?VBA录制宏了解下

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

原创
作者头像
猴子数据分析
修改2020-11-23 10:24:21
1.9K0
修改2020-11-23 10:24:21
举报
文章被收录于专栏:猴子数据分析猴子数据分析

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档