可能在录制宏的时候,我们选择了错误的字体,可能是忘记改变单元格颜色,又或者你临时发现最好加上一个步骤。这个时候不必惊慌。Excel是允许你修改代码的,而不会强迫你重新录制那些单调的操作。
修改宏代码的步骤
你必须知道你的宏代码放在哪里,你才能找到并修改它。回想你打开宏录制器的时候,你选择了“当前工作簿”作为存储地址。最容易找到宏的方法是打开宏对话框,如图下图所示。
宏对话框
1、选择“工具”-“宏”
2、选择宏名(本例中为WhatsInACell)
3、点击“编辑”按钮
Excel 打开一个专门的窗口,叫做VisualBasicEditor(VBE)如下图所示。利用快捷键Alt+F11
可快速地在Excel表格界面和代码窗口切换。选择VBE菜单上的关闭选项可以关闭VBA代码窗口,返
回到电子表格界面。
可快速地在Excel表格界面和代码窗口切换。选择VBE菜单上的关闭选项可以关闭VBA代码窗口,返
回到电子表格界面。
VBE窗口
代码窗口暂时看上去有些令人迷惑,不必担心。只要你开始录制宏,以及尝试写一些代码,你终将了解所有的组件。现在,看一下代码窗口的菜单和工具栏。这两个工具栏和Excel 窗口的菜单完全不同。代码窗口的菜单和工具包含一些编程和测试代码所需要的工具。只要你彻底地学习本书的每一章,你就会成为使用这些工具的专家。
VBE窗口的主要部分是多个窗口的集合界面,这些窗口在你创建和测试VBA过程的时候是及其有用
的。在上图VBE窗口中显示了三个集合在一起的窗口:工程窗口,属性窗口和代码窗口。工程窗口显示一个开
启的模块文件夹,在这里,模块1被选中了。Excel 录制你在工作表里的操作叫做模块1,模块2,等等。在本手册接下来的章节里,你将利用模块来编写你自己的过程代码。
的。在上图VBE窗口中显示了三个集合在一起的窗口:工程窗口,属性窗口和代码窗口。工程窗口显示一个开
启的模块文件夹,在这里,模块1被选中了。Excel 录制你在工作表里的操作叫做模块1,模块2,等等。在本手册接下来的章节里,你将利用模块来编写你自己的过程代码。
模块类似于Word中的一个空白文档。储存每个单独模块的文件夹称为“模块”
技巧:宏还是过程?
宏是通过内置宏录制器录制的,或者在VB编辑器里手动输入的一系列指令或函数。从Excel 5.0开始,“宏”经常被“过程”这个更广的概念所代替。尽管这两个词可以交替互换使用,但是,许多编程者更喜欢“过程”。虽然宏可以让你模仿键盘操作,真正的过程则还可以执行一些不能通过鼠标,键盘或者菜单来做的操作。换句话说,过程是一个更复杂的宏,它结合了传统编程语言的言语结构。
宏是通过内置宏录制器录制的,或者在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
'
' 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
单引号)
‘ Find and format cells containing numbers
6、在Selection.SpecialCells(xlCellTypeFormulas,23).Select前面点击一下,将光标移至该
语句开头,回车
语句开头,回车
7、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘ Find and format cells containing formulas
单引号)
‘ Find and format cells containing formulas
8、在Range("A1:A3").Select前面点击一下,将光标移至该语句开头,回车
技巧:关于注释
在VBE代码窗口里,以单引号开头的都是注释。注释的默认颜色是绿色。可以通过“选项”对话框(“工具”-“选项”-“编辑器格式”)更改注释颜色。注释也可以写在代码的后面。
在VBE代码窗口里,以单引号开头的都是注释。注释的默认颜色是绿色。可以通过“选项”对话框(“工具”-“选项”-“编辑器格式”)更改注释颜色。注释也可以写在代码的后面。
例如,在语句.ColorIndex = 11之后添加注释。点击该语句句末,按下Tab键,输入单引号,然后输入注释。
显示如下:
显示如下:
.ColorIndex = 11 ' Sets the font color to Violet
注释除了给用户提供代码目的信息之外,没有任何作用。请别忘记给你的代码写上注释。如果你几个月后还要回到你的代码,那么注释将帮你大忙。同样,注释可以使别人很快理解你的程序。
9、将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的
单引号)
‘Create legend
单引号)
‘Create legend
作者:andy,如若转载,请注明出处:https://www.web176.com/vba/20291.html