以前一直觉得写宏是件很高大上的事,不敢轻易碰触。直到有一天工作需要,开始学起才发现并没有想象中的那么难,其实挺容易上手的~~
一.录制简单的宏
“宏”,是指一系列EXCEL能够执行的VBA语句,学写宏先从录制宏开始。以下将要录制的宏非常简单,只是改变单元格颜色。请完成以下步骤:
1)打开新工作薄,同时确认其他工作薄已经关闭。
2)选择A1单元格。调出“常用”工具栏。
3)选择“视图”-“宏"-"录制新宏”。
4)输入“改变颜色”作为宏名替换默认宏名,以便于分别宏。并在如下框内自定义执行宏的快捷键,以便更快的执行宏。
宏名最多为255个字符,必须以字母开始,可用字符为字母、数字、下划线,不允许出现空格,可用下划线代替空格。
5)在工具栏中,选择“格式化”-“格式化单元格”,将单元格颜色设置为红色,单击确定。
6)在录制宏处单击“停止录制”。此时宏录制完毕,可以开始执行了。
二.执行宏
当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得便捷,还能使你获得一些使用EXCEL标准命令所无法实现的功能。接下来执行刚才录制的宏:
1)选择任何一个单元格,比如A3。也可试着选择其他单元格或者几个单元格组成的区域
2)选择“工具”-“宏”-“宏”,显示“宏”对话框。
3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。
或者如上所自定义的快捷方式,按CTRL+SHIFT+L便可以执行宏。
三. 查看并修改录制的宏代码
录制宏只是简单的开始,修改宏代码来实现需要实现的功能才能起到宏的真正作用。
1)选择如上图中“执行“下面的”编辑“按钮。此时,会打开VBA的编辑器窗口(VBE)。代码如下:
Sub 改变颜色()
'
' 改变颜色 Macro
'
' Keyboard Shortcut: Ctrl+Shift+L
'
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
End With
End Sub
Sub 改变颜色():这是宏的名称。中间以 ’ 开头的五行称为“注释”,它在录制宏时自动产生。
以With开头到End with结束的结构是With结构语句,这段语句是宏的主要部分。With Selection.Interior:意思是“选择区域的内部”。接下来的整段语句便是设置该区域内部的一些“属性”。
.Pattern =xlSolid:设置该区域的内部图案。由于是录制宏,所以你未曾设置宏也仍然将其记录下来。(因为在“图案”选项中有此一项,只是你未曾设置而已),xlSolid表示纯色。
.PatternColorIndex =xlAutomatic:表示内部图案底纹颜色为自动配色。
.Color = 255:将该区域内部设置为红色。此句为录制的关键句。
End With:结束With语句。End Sub:整个宏的结束语。
修改录制的宏,从上面分析可以看到有两句代码并没有起到起到上面作用,删除这两行后重新运行会发现结果跟修改前的状况一样。
在With语句前加一行:Rang(“A4").select。再试着运行该宏,则无论开始时选择哪个单元格,宏运行结果都是使A4单元格变宏。此语句起到固定的作用。最终代码如下:
Sub 改变颜色()
'
' 改变颜色 Macro
'
' Keyboard Shortcut: Ctrl+Shift+L
'
Range("A4").Select
With Selection.Interior
.Color = 255
End With
End Sub
录制宏存在一定的局限性,编辑宏可以删除宏中多余的语句,提高宏的运行速度。还可以增加宏的功能,比如加入判断或循环等无法录制的语句。
四.保存宏
将写有宏的excel表格另存为 Excel Macro-Enabled Workbook格式的文件,如下图所示。再次打开便可以运行所保存的宏。
接下来将讲到如何在EXCEL中使用控件,敬请期待哦~~