首页 > 其他分享 >Excel VBA 不可一世的录制宏,是否真的是万能的

Excel VBA 不可一世的录制宏,是否真的是万能的

时间:2022-11-07 17:05:17浏览次数:77  
标签:VBA 代码 录制 Excel A2 不可一世 我们

上篇文章说到什么是Excel VBA,那么你就会有疑问宏是如何应用到我们的Excel中呢?他真的是万能的吗?他具体可以做啥?其实可以这么说,宏是我们通过Excel录制从而得到VBA代码,而我们有时候自己写的代码也称之为VBA代码。其实他们本质是相同的。


上篇文章:Excel VBA的前生今世,花样年华,等待着绽放花朵



我们先看Excel的宏可以在Excel中做什么事情?如下图有某个公司的出库报表。

Excel VBA 不可一世的录制宏,是否真的是万能的_执行效率


每天出货的编码,品名,数量,单价,这些需要我们自己手动录入Excel中,当我们完成了这个单据,需要把他保存到我们的记录Sheets中。


我们一般手动操作是复制A2:F6单元格区域,点击COPY,然后激活记录工作表,点击A2单元格,进行粘贴,完成这个动作。



那么我们如果我们一天有几百个这个的出库报表,您是否需要这样重复操作一百遍?这样的工作效率是不是很低?


这个时候我们就可以用VBA代码来实现这个功能。我们先看看动画是怎么通过录制宏得到代码的吧!



Excel VBA 不可一世的录制宏,是否真的是万能的_工作效率_02

看到上面的操作,是不是感觉原来需要我们自己手动进行操作的,现在只要点击按键,就可以自动的执行,是不是感觉是如此之简单的?


我们先一起看看通过录制得到的宏代码。

Excel VBA 不可一世的录制宏,是否真的是万能的_执行效率_03


如下是我们自己手动自己写的代码,是不是发现我们通过录制得到的代码十分繁琐,多了很多无用的代码,通过录制的宏代码的执行效率也是非常低的。因此我们一般是通过录制宏,得到相应代码是使用方法和功能性代码,并不是我们都能记得起来所有的代码,有时候也需要通过录制宏间接的得到我们所需的代码

Excel VBA 不可一世的录制宏,是否真的是万能的_工作效率_04


这句代码的意思是复制A2:F6单元格区域,就相当于我们自己手动进行复制操作。

Range("A2:F6").Copy


这句代码的意思是,把我们刚刚复制的内容,粘贴到我们需要存放的工作表中。

Sheets("记录").Range("A2").PasteSpecial


或者你想说,如果每次复制单元格区域大小是改变的,这个时候代码应该如何去写,我们只需要把上面的代码稍作修改即可:


Range("A2:F"& Cells(Rows.Count, 1).End(3).Row).Copy


Sheets("记录").Range("A" &Sheets("记录").Cells(Rows.Count, 1).End(3).Row +1).PasteSpecial

上面这个就可以自动识别区域大小,进行记录操作。

Excel VBA 不可一世的录制宏,是否真的是万能的_执行效率_05


我们看看修改后的代码执行效果。



Excel VBA 不可一世的录制宏,是否真的是万能的_执行效率_06

这个代码其实也许开始学习的你还是有点疑惑,但是不要紧,我们会逐一开始和你介绍如何去学习和自己写出来代码。


所以在某些层面上说,录制宏其实并不是万能的,有些复杂的操作,通过录制宏我们并不能得到我们所需要的代码。我们在后期,并不推荐你用通过录制宏来得到想要的代码。


我是Excel教案,关注我持续分享更多的Excel技巧



标签:VBA,代码,录制,Excel,A2,不可一世,我们
From: https://blog.51cto.com/u_15705258/5830081

相关文章