美文网首页
VBA:录制宏

VBA:录制宏

作者: super小明 | 来源:发表于2016-11-21 10:27 被阅读63次

    “宏”,是指一系列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格式的文件,如下图所示。再次打开便可以运行所保存的宏。

    相关文章

      网友评论

          本文标题:VBA:录制宏

          本文链接:https://www.haomeiwen.com/subject/fgqupttx.html