codecamp

修改Excel宏代码及添加注释的步骤

可能在录制宏的时候,我们选择了错误的字体,可能是忘记改变单元格颜色,又或者你临时发现最好加上一个步骤。这个时候不必惊慌。Excel是允许你修改代码的,而不会强迫你重新录制那些单调的操作。

修改宏代码的步骤

你必须知道你的宏代码放在哪里,你才能找到并修改它。回想你打开宏录制器的时候,你选择了“当前工作簿”作为存储地址。最容易找到宏的方法是打开宏对话框,如图下图所示。

宏对话框
宏对话框

1、选择“工具”-“宏”

2、选择宏名(本例中为WhatsInACell)

3、点击“编辑”按钮

Excel 打开一个专门的窗口,叫做VisualBasicEditor(VBE)如下图所示。利用快捷键Alt+F11
可快速地在Excel表格界面和代码窗口切换。选择VBE菜单上的关闭选项可以关闭VBA代码窗口,返
回到电子表格界面。

VBE窗口
VBE窗口

代码窗口暂时看上去有些令人迷惑,不必担心。只要你开始录制宏,以及尝试写一些代码,你终将了解所有的组件。现在,看一下代码窗口的菜单和工具栏。这两个工具栏和Excel 窗口的菜单完全不同。代码窗口的菜单和工具包含一些编程和测试代码所需要的工具。只要你彻底地学习本书的每一章,你就会成为使用这些工具的专家。

VBE窗口的主要部分是多个窗口的集合界面,这些窗口在你创建和测试VBA过程的时候是及其有用
 的。在上图VBE窗口中显示了三个集合在一起的窗口:工程窗口,属性窗口和代码窗口。工程窗口显示一个开
启的模块文件夹,在这里,模块1被选中了。Excel 录制你在工作表里的操作叫做模块1,模块2,等等。在本手册接下来的章节里,你将利用模块来编写你自己的过程代码。

模块类似于Word中的一个空白文档。储存每个单独模块的文件夹称为“模块”

技巧:宏还是过程?
宏是通过内置宏录制器录制的,或者在VB编辑器里手动输入的一系列指令或函数。从Excel 5.0开始,“宏”经常被“过程”这个更广的概念所代替。尽管这两个词可以交替互换使用,但是,许多编程者更喜欢“过程”。虽然宏可以让你模仿键盘操作,真正的过程则还可以执行一些不能通过鼠标,键盘或者菜单来做的操作。换句话说,过程是一个更复杂的宏,它结合了传统编程语言的言语结构。

代码窗口(参见上图VBE窗口)显示了下列由宏录制器录制的代码:

Sub WhatsInACell()
'
' WhatsInACell Macro
' Macro recorded 5/31/2002 by Julitta Korol
' Indicates the contents of the underlying cells: text, numbers, formulas.
'
        Selection.SpecialCells(xlCellTypeConstants, 2).Select
        With Selection.Font
                  .Name = "Arial"
                  .FontStyle = "Bold"
                  .Size = 10
                  .Strikethrough = False
                  .Superscript = False
                  .Subscript = False
                  .OutlineFont = False
                  .Shadow = False
                  .Underline = xlUnderlineStyleNone
                  .ColorIndex = 13
        End With
        Range("B6").Select
        Selection.SpecialCells(xlCellTypeConstants, 1).Select
        With Selection.Font
                  .Name = "Arial"
                  .FontStyle = "Regular"
                  .Size = 10
                  .Strikethrough = False
                  .Superscript = False
                  .Subscript = False
                  .OutlineFont = False
                  .Shadow = False
                  .Underline = xlUnderlineStyleNone
                  .ColorIndex = 11
        End With
        Range("C6").Select
        Selection.SpecialCells(xlCellTypeFormulas, 23).Select
        With Selection.Font
                  .Name = "Arial"
                  .FontStyle = "Bold"
                  .Size = 10
                  .Strikethrough = False
                  .Superscript = False
                  .Subscript = False
                  .OutlineFont = False
                  .Shadow = False
                  .Underline = xlUnderlineStyleNone
                  .ColorIndex = 3
        End With
        Range("A1:A3").Select
        Selection.EntireRow.Insert
        Range("A1").SelectWith Selection.Interior
                  .ColorIndex = 13
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
        End With
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "Text"
        Range("A2").Select
        With Selection.Interior
                  .ColorIndex = 5
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
        End With
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "Numbers"
        Range("A3").Select
        With Selection.Interior
                  .ColorIndex = 3
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
        End With
        Range("B3").Select
        ActiveCell.FormulaR1C1 = "Formulas"
        Range("B4").Select
End Sub

从现在开始,让我们注重于寻找下面两个问题的答案:如何阅读宏代码?如何修改宏代码?

添加注释

看一下录制的宏代码,请注意那些开头带单引号的行。这些行就是注释。注释默认显示为绿色。执行宏代码时,VB会忽略这些注释行。注释经常和宏代码放在一起,来整理那些意义不甚明显的语句。

现在,我们来给宏WhatsInACell 添加注释。

1、激活VBE窗口

2、在Selection.SpecialCells(xlCellTypeConstants,2).Select前面点击一下,将光标移至该
语句开头,回车

3、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘ Find and format cells containing text

4、在Selection.SpecialCells(xlCellTypeConstants,1).Select前面点击一下,将光标移至该语句开头,回车

5、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘ Find and format cells containing numbers

6、在Selection.SpecialCells(xlCellTypeFormulas,23).Select前面点击一下,将光标移至该
语句开头,回车

7、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘ Find and format cells containing formulas

8、在Range("A1:A3").Select前面点击一下,将光标移至该语句开头,回车

技巧:关于注释
在VBE代码窗口里,以单引号开头的都是注释。注释的默认颜色是绿色。可以通过“选项”对话框(“工具”-“选项”-“编辑器格式”)更改注释颜色。注释也可以写在代码的后面。

例如,在语句.ColorIndex = 11之后添加注释。点击该语句句末,按下Tab键,输入单引号,然后输入注释。
显示如下:

.ColorIndex = 11 ' Sets the font color to Violet

注释除了给用户提供代码目的信息之外,没有任何作用。请别忘记给你的代码写上注释。如果你几个月后还要回到你的代码,那么注释将帮你大忙。同样,注释可以使别人很快理解你的程序。

9、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘Create legend
Excel创建宏并运行的步骤
分析及测试修改后的Excel宏代码步骤
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }