上篇文章说到什么是Excel VBA,那么你就会有疑问宏是如何应用到我们的Excel中呢?他真的是万能的吗?他具体可以做啥?其实可以这么说,宏是我们通过Excel录制从而得到VBA代码,而我们有时候自己写的代码也称之为VBA代码。其实他们本质是相同的。
上篇文章:Excel VBA的前生今世,花样年华,等待着绽放花朵
我们先看Excel的宏可以在Excel中做什么事情?如下图有某个公司的出库报表。
每天出货的编码,品名,数量,单价,这些需要我们自己手动录入Excel中,当我们完成了这个单据,需要把他保存到我们的记录Sheets中。
我们一般手动操作是复制A2:F6单元格区域,点击COPY,然后激活记录工作表,点击A2单元格,进行粘贴,完成这个动作。
那么我们如果我们一天有几百个这个的出库报表,您是否需要这样重复操作一百遍?这样的工作效率是不是很低?
这个时候我们就可以用VBA代码来实现这个功能。我们先看看动画是怎么通过录制宏得到代码的吧!
看到上面的操作,是不是感觉原来需要我们自己手动进行操作的,现在只要点击按键,就可以自动的执行,是不是感觉是如此之简单的?
我们先一起看看通过录制得到的宏代码。
如下是我们自己手动自己写的代码,是不是发现我们通过录制得到的代码十分繁琐,多了很多无用的代码,通过录制的宏代码的执行效率也是非常低的。因此我们一般是通过录制宏,得到相应代码是使用方法和功能性代码,并不是我们都能记得起来所有的代码,有时候也需要通过录制宏间接的得到我们所需的代码
。
这句代码的意思是复制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教案,关注我持续分享更多的Excel技巧