作者:Julitta Korol 翻译:Tiger Chen Nov 28’ 2004
本书展示了Excel 2002 在标准用户界面之外什么是可行的。如果你曾经想不使用菜单来打开一个新的工作表,或者创建一个充分自动化的自定义窗体来收集数据和在工作表里存储结果,那么你必须学习一些编程。本书教你如何通过将一些费时的和重复的工作交给Excel,从而更加成果丰富。使用Excel内置语言,VBA (Visual Basic for Applications),你将给自己或他人带来非常高的自动化程度的电子表格。通过使用许多内置的编程工具,你做得可以比想象中容易得多。你不要增加额外费用,除非你想熟悉Excel背后的秘密。在Excel窗口下,同时按下Alt+F11,你将进入VB编辑器界面——Excel的编程界面。既然这个保护得很好的秘密已经公开了,就让我告诉你更多一些。除了VBA之外,本书还介绍了两种可以和Excel并用的热门英特网技术。一种是ASP (Active Server Pages),另一种是XML (Extensible Markup Language)。你也可以学习到许多其它的支持技术。因此,如果你真正想要获得一些热门技术,请立即购买本书,并且不要浪费时间,马上开始学习。Learn Microsoft Excel 2002 VBA Programming with XML and ASP 带领你从始至终创建VBA过程,VBScripts,ASP 页面,XML 文件和XSL 工作表。沿着这条路,有许多详细的,适用的“如何做”例子和插图。本书的方法是“由做而学”。本书的前面几章介绍了一些基本的VBA概念,循序渐进,复杂的主题在后面的章节。十七章中的每一章是按循序的。此外,本书还由四章附录,讨论在Excel里针对一些特殊方面的操作和编程。本书可以当作是一种在办公室或家里学习的课程。许多课程都有前提条件,本书也不例外。Learn Microsoft Excel 2002 VBA Programming with XML and ASP 不会向你介绍Excel的基本东西,例如菜单和快捷键。我们假设你已经喜欢使用Excel,并且有兴趣学习如何与Excel在它自己的语言里交流,学习如何将它与现在的英特网技术结合。
第一章 电子表格自动化简介和了解宏命令
你准备好了增进你的微软 Excel 2002 电子表格的智能吗?通过将日常工作自动化,你可以使你的电子表格更快,更有效。本章带领你步入使用宏命令来加速电子表格的过程。你将学到宏是什么,如何以及什么时候使用它们,乃至如何编写和修改宏代码。开始学习宏命令很简单。创建宏并不需要什么,只是一些你已经拥有的知识——基本的微软Excel 2002 菜单知识和电子表格概念。你准备好开始了吗?确保你坐在计算机前并且打开了Excel 2002。
了解宏
宏是一些储存了一系列命令的程序。当你创建一个宏命令的时候,你只是将一系列的键盘输入结合成一个简单的命令,你以后可以“回演”这个命令。因为宏命令可以减少复杂任务的步骤,使用宏命令可以显著得减少你花在创建,设置格式,修改和打印工作表的时间。你可以通过Excel内置的录制工具来创建宏命令,也可以在代码编辑器里面直接写代码。微软 Excel 2002 电子表格具有强大的编程功能。
技巧1-1:普通语言
Excel 5 是市场上第一个使用VBA的软件。从那以后,VBA开拓了在所有微软办公应用软件中的应用。这意味着你从本书中学习的VBA将来同样可以应用到其它微软办公软件中,例如:Word, PowerPoint, Outlook or Access
宏命令的普通应用
微软 Excel 2002 带来了很多内置,节省时间的特点,这些使你工作得更快更聪明。在你决定用宏命令来自动化工作表任务前,确保没有现成的内置工具来做这项任务。然而,当你发现你需要反复地做一些动作,或者Excel没有提供一个内置工具帮你完成该任务,那么创建一个宏命令吧。宏命令可以使你能够将工作表的任何部分工作自动化。例如,你可以自动化数据录入——创建一个宏命令在工作表输入标题或者用新标签取代列标题。宏命令可以帮你检查选中的工作表区域里的重复值。你可以通过宏命令快速地将格式应用到多个工作表,并且可以结合不同的格式,例如字体,颜色,边框和阴影等。尽管如此,Excel 还拥有非常强大的图表功能,如果你想要将图表创建和格式设置自动化,那么宏命令是一个好方法。宏命令也可以帮助你设置打印区域,页边距,页眉,页脚,以及选择特殊的打印选项。
写宏之前的计划
在你创建一个宏命令之前,花几分钟来考虑你究竟想做什么。因为宏命令是一大堆键盘输入的集合,事先计划你的行动非常重要。最早的计划宏命令的方法是手动地将宏命令需要做的事情做一遍。在你做键盘输入的同时,在一张纸上记录下他们实际发生的情况,不要漏掉任何东西。象录音机一样,Excel 可以将你的所有动作录制下来(译者:事实上并非如此,有些操作是无法录制的)。如果在录制宏之前,你没有很好地计划,你会录制很多不必要的步骤,而这些都会影响运行速度。尽管修改宏代码比去除录制宏里面不必要的步骤容易,但是,仅仅录制必要的步骤会节省你修改代码的时间和以后的麻烦。
假设你想看一眼哪些区域是文本,哪些是数字以及哪些是公式,图1-1显示了使用不同的字体颜色和样式来区分这些单元格里潜在的内容。
图1-1
如何设置如图1-1所示的格式?打开一个含有公式计算的工作表,或者创建一个如图所示的例子。如果你用图示例子,请确保用SUM函数计算每月和季度的总结。
在录制宏之前,请做如下操作:
1. 选取一个单元格
2. 选择“编辑”-“定位”
3. 在“定位”对话框中,点击“特殊”按钮
4. 在“特殊”对话框中,勾选“常数”——勾选“文本”,同时去除“数字”,“逻辑值”和“错误值”的勾选
5.按“确定”返回工作表。注意,这时含有文本的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
6. 对选中区域。选择“格式”-“单元格”
7.在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“紫色”。然后点击“确定”关闭对话框。注意,含有文本的单元格显示了不同的颜色。
步骤1到7教你定位到文本单元格,要定位数字单元格,请按如下操作:
8. 选取一个单元格
9. 选择“编辑”-“定位”
10. 在“定位”对话框中,点击“特殊”按钮
11. 在“特殊”对话框中,勾选“常数”——勾选“数字”,同时去除“文本”,“逻辑值”和“错误值”的勾选
12.按“确定”返回工作表。注意,这时含有数字的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
13. 对选中区域。选择“格式”-“单元格”
14.在单元格格式设置对话框,选择“字体”-设置字体颜色为“暗蓝色”。然后点击“确定”关闭对话框。注意,含有数字的单元格显示了不同的颜色。
步骤8到14教你定位到数字单元格,要定位公式单元格,请按如下操作:
15. 选取一个单元格
16. 选择“编辑”-“定位”
17. 在“定位”对话框中,点击“特殊”按钮
18. 在“特殊”对话框中,勾选“公式”
19.按“确定”返回工作表。注意,这时含有公式计算结果的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
20. 对选中区域。选择“格式”-“单元格”
21.在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“红色”。然后点击“确定”关闭对话框。注意,含有公式的单元格显示了不同的颜色。
步骤15到21教你定位到公式单元格。你可以在工作表中加上图例,以便容易理解。
22. 选取区域A1:A3,选择“插入”-“行”
23. 选择单元格A1
24. 选择“格式”-“单元格”,并且在“填充色”页点击“紫色”,点击“确定”返回工作表
25. 选择B1,输入“文本”
26. 选择单元格A2
27. 选择“格式”-“单元格”,并且点击“暗蓝色”,“确定”返回
28. 选择B2,输入“数字”
29. 选择A3
30. 选择“格式”-“单元格”,点击“红色”,“确定”返回
31. 选择B3,输入“公式”
32. 选择A1
完成步骤22到32后,A1:A3单元格会显示一个简单的颜色图例,如图1-1所示。
正如你所看到的,不管工作表显示的任务多么简单,你却可能需要很多步骤来达到预期效果。创建一个可以重复你刚才操作的宏命令,真的很省时间,特别是当你需要重复这个相同的工作到很多工作表中去。
录制宏
既然你已经知道了你需要做哪些操作,是时候打开你的宏录制器来创建你的宏了。在你依照下面的录制步骤之前,请确保你已经清除了刚才例子里的格式。按下Ctrl+A以选中整个工作表,选择“编辑”-“清除”-“格式”选择A1:A3并且选择“编辑”-“删除”。在“删除”对话框,选择“整行”然后点击“确定”。
依照以下步骤来创建你的第一个宏命令:
1. 选择一个单元格
录制宏之前,你应该想好是否要录制当前单元格的位置。如果你需要宏总是从一个特定的位置开始,那么先打开宏录制器再选择你想要宏开始选中的特定位置。如果当前单元格的位置无关紧要,那么先选择一个单元格,然后才打开宏录制器。
选择“工具”-“宏”-“录制新宏”。出现一个录制宏对话框。
图1-2 当你录制新宏的时候,必须有名字。你也可以给它设置一个快捷键,储存地方以及描述。
2. 给宏取个名字“WhatsInACell”
技巧1-2:宏命名
如果你忘记给宏命名,Excel 会给出一个默认的宏名,例如:Macro1,Macro2,等等。宏名可以包含字母,数字和下划线,但是第一个字必须是字母(译者:中文亦可,建议用英文)。例如:Report1是有效的宏名,然而1Report则是非法的。宏名里不能含有空格。如果你隔开宏名中的每个词,可以使用下划线。例如:WhatsInACell,改为Whats_In_A_Cell。
3. 在宏的存贮位置里,选择“当前工作簿”
技巧1-3:保存宏
Excel 让你可以将宏保存在三个地方:
个人宏工作簿——如果你将宏保存在这里,你每次使用Excel 的时候都可以使用这个宏。个人宏工作簿在XLStart文件夹中。如果这个工作簿不存在,那么当你第一次使用这个选项的时候,Excel会自动生成这个工作簿。
新工作簿——Excel将宏放在一个新工作簿里。
当前工作簿——宏将被保存在你正在使用的工作簿里面。
4. 在描述框里输入:显示单元格里潜在的内容:文本,数字,公式
5. 点击“确定”关闭宏录制对话框,并开始录制。这时,出现了“停止录制”工具栏。Excel下面的状态栏显示“准备录制”
图1-3 停止录制工具栏提供按钮来停止录制,以及让Excel如何在录制宏的时候处理单元格地址
技巧1-4:单元格地址:相对或绝对?
绝对——如果在执行宏命令的过程中,无论哪些单元格被选中了,你都希望宏在特定的单元格执行这些录制的操作,那么使用绝对单元格地址。绝对单元格引用具有如下形式:$A$1,$C$5等。Excel宏录制器默认使用绝对引用。在录制前,确保停止录制工具栏上的第二个按钮没有被按下去。当鼠标指向这个按钮,工具提示“相对引用”。
相对——如果你想要宏可以用在任何区域,就打开相对引用。相对引用具有如下形式:A1,C5等。在录制前,确保停止录制工具栏上的第二个按钮已经被按下去了。记住,Excel 将会继续使用相对引用,直到退出Excel或者再次点击相对引用按钮。在录制宏的过程中,你可以使用这两种引用方法。例如:你可以选择一个特定单元格(如$A$4),做一个操作,然后选择另外一个相对于当前位置的单元格(如C9,他在当前单元格$A$4往下5行和向右2列的位置)。当你复制单元格时,相对引用会自动调整引用,而绝对引用则不会。
6. 从新进行刚才你手动完成的那些操作(参见“写宏之前的计划“)
录制宏的时候,只有当你按下了回车键或者点击了确定之后,你的操作才会被录制。如果你按下了Esc键或者点击了取消,宏录制器不会录制任何操作。
7. 完成所有操作后,点击停止录制工具栏上的“停止录制”按钮,或者选择“工具”-“宏”-“停止录制”
运行宏
你创建了一个宏命令后,至少要运行一次以确保它运行正确。在本章的后面,你将学到好几种运行宏的方法,不过,现在,使用菜单命令。要看到你的成果,确保清除了例子的格式。按下Ctrl+A以选中整个工作表,选择“编辑”-“清除”-“格式”选择A1:A3并且选择“编辑”-“删除”。在“删除”对话框,选择“整行”然后点击“确定”。稍后,你将在另外一个宏里面录制清除工作表格式的步骤。
1. 打开任何包含文本,数字和公式的工作表
2. 选择“工具”-“宏”-“运行宏”来打开宏对话框
3. 点击你要运行的宏的名称(参见图1-4)
4. 选择“运行”,执行宏
图1-4 在宏对话框,你可以选择一个宏,运行,编辑或者删除它
你也许经常会发现录制的宏不会按你预期的和你第一次操作那么运行。也许在录制宏的时候,你选择了错误的字体,或者忘记改变单元格颜色,或者你临时发现最好加上一个步骤。不必惊慌。Excel允许你修改代码,而不会强迫你重新录制那些单调的操作。
修改宏代码
你必须知道你的宏代码放在哪里,你才能找到并修改它。回想你打开宏录制器的时候,你选择了“当前工作簿”作为存储地址。最容易找到宏的方法是打开宏对话框,如图1-4所示。
1. 选择“工具”-“宏”
2. 选择宏名(本例中为WhatsInACell)
3. 点击“编辑”按钮
Excel 打开一个专门的窗口,叫做Visual Basic Editor (VBE)如图1-5所示。利用快捷键Alt+F11可快速地在Excel表格界面和代码窗口切换。选择VBE菜单上的关闭选项可以关闭VBA代码窗口,返回到电子表格界面。
代码窗口暂时看上去有些令人迷惑,不必担心。只要你开始录制宏,以及尝试写一些代码,你终将这个屏幕所有的组件。现在,看一下代码窗口的菜单和工具栏。这两个工具栏和Excel 窗口的菜单完全不同。代码窗口的菜单和工具包含一些编程和测试代码所需要的工具。只要你彻底地学习本书的每一章,你就会成为使用这些工具的专家。
图1-5 VBE窗口是编辑宏命令和书写新的VBA代码的地方
VBE窗口的主要部分是多个窗口的集合界面,这些窗口在你创建和测试VBA过程的时候是及其有用的。图1-5显示了三个集合在一起的窗口:工程窗口,属性窗口和代码窗口。工程窗口显示一个开启的模块文件夹,在这里,模块1被选中了。Excel 录制你在工作表里的操作叫做模块1,模块2,等等。在本书接下来的章节里,你将利用模块来编写你自己的过程代码。模块类似于Word中的一个空白文档。储存每个单独模块的文件夹称为“模块”
技巧1-5:宏还是过程?
宏是通过内置宏录制器录制的,或者在VB编辑器里手动输入的一系列指令或函数。从Excel 5.0开始,“宏”经常被“过程”这个更广的概念所代替。尽管这两个词可以交替互换使用,但是,许多编程者更喜欢“过程”。虽然宏可以让你模仿键盘操作,真正的过程则还可以执行一些不能通过鼠标,键盘或者菜单来做的操作。换句话说,过程是一个更复杂的宏,它结合了传统编程语言的言语结构。
代码窗口(参见图1-5)显示了下列由宏录制器录制的代码:
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").Select
With 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前面点击一下,将光标移至该语句开头,回车
技巧1-6:关于注释
在VBE代码窗口里,以单引号开头的都是注释。注释的默认颜色是绿色。可以通过“选项”对话框(“工具”-“选项”-“编辑器格式”)更改注释颜色。注释也可以写在代码的后面。例如,在语句.ColorIndex = 11之后添加注释。点击该语句句末,按下Tab键,输入单引号,然后输入注释。显示如下:
.ColorIndex = 11 ' Sets the font color to Violet
注释除了给用户提供代码目的信息之外,没有任何作用。请别忘记给你的代码写上注释。如果你几个月后还要回到你的代码,那么注释将帮你大忙。同样,注释可以使别人很快理解你的程序。
9. 将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的单引号)
‘Create legend
分析宏代码
所有宏过程都以关键词“Sub”开始,以关键词“End Sub”结束。在关键词“Sub”之后是宏的真正的名字,然后紧跟着是一对括号。在关键词Sub 和End Sub之间是那些你每次运行宏代码时VB执行的语句。VB从上到下读取语句,忽略那些句前带单引号的语句(参见上节关于注释的内容),读到End Sub时停止。请注意,录制的宏代码里包含许多停顿(译者:英文模式下的句号)。每行代码中都有停顿,用来连接VBA语言中不同的要素。如何阅读这种语言的用法呢?要从最后一个停顿的右边向左读。看看WhatsInACell里的一些语句:
Range("A1:A3").Select
选择A1到A3单元格
Selection.EntireRow.Insert
往选中的区域中插入行。因为前面你选中的是三个单元格(译者:应该说是占据了三行的单元格),VB将插入三行。
ActiveCell.FormulaR1C1 = "Text"
往当前单元格里输入“Text”。因为,之前的代码是Range("B1").Select,选择单元格B1,B1是当前激活的单元格,所有VB往B1单元格里面输入文本。
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
这是一段特别的代码块,解释如下:给当前选中的单元格设置单元格填充色为红色(ColorIndex = 3),设置填充模式为实心(xlSolid),并且给当前单元格明确为默认的填充模式(xlAutomatic)。这个代码块以关键词With开始,End With结束,它将加速宏代码的执行。宏代码知道走捷径,而不会每次都重复下面的说明:
Selection.Interior.ColorIndex = 3
Selection.Interior.Pattern = xlSolid
Selection.Interior.PatternColorIndex = xlAutomatic
在关键词With后面紧跟重复的Selection.Interior,再以End With结尾。
清除宏代码
你已经逐行解析了你宏代码,你会发现Excel录制了许多你并不想要包含进去的信息。例如,在选中了文本单元格后,除了设置字体为粗体和颜色为紫色之外,Excel 还录制了其它在字体页的选项——字体名称,字体大小,删除线,上标,下标,阴影和下划线。请看下列代码片断:
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
如果你使用了对话框,Excel总会录制所有的设定。这些多余的代码使得你的宏代码冗长而难以理解。因此,你完成录制宏后,最好检查一遍你录制的代码并删除不必要的行。
1. 在下面的代码中,删除带删除线的行:
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
清除后,在关键词With和End With之间只剩下了两句代码,这些才是你在录制宏的时候真正做的设置:
With Selection.Font
.FontStyle = "Bold"
.ColorIndex = 13
End With
2. 找到设置数字单元格格式的代码,依照下面的例子修改代码:
' Find and format cells containing numbers
With Selection
.SpecialCells(xlCellTypeConstants, 1).Select
.Font.ColorIndex = 11 ' Sets the font color to Violet
End With
Range("C6").Select
3. 找到设置公式单元格格式的代码,依照下面的例子修改代码:
' Find and format cells containing formulas
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
With Selection.Font
.FontStyle = "Bold"
.ColorIndex = 3
End With
4. 找到下述两行代码:
Range("A1:A3").Select
Selection.EntireRow.Insert
5. 用下面的一句代码取代上面的两句代码:
Range("A1:A3").EntireRow.Insert
注意,Excel使用了R1C1形式来设置选中单元格个公式:
ActiveCell.FormulaR1C1 = "Text"
ActiveCell.FormulaR1C1 = "Numbers"
ActiveCell.FormulaR1C1 = "Formulas"
宏录制器使用了一次“ActiveCell”和一次“Selection”来选择当前单元格。这两个词都称为属性。你将在第二章里学习属性。当仅有一个单元格被选中时,你可以随意使用“ActiveCell”或者“Selection”。
测试修改好的宏
当你修改宏的时候,很可能会带入一些错误。例如,你可能会删除一行重要的代码,或者可能不注意清除或忽略了一个逗点(停顿)。为了确保你的宏在你修改之后还能正确地工作,你必须运行它。
在VBE窗口,将光标放在宏代码WhatsInACell的任意行,选择“运行”-“运行模块/窗体”
如果你在修改代码的时候,没有带入任何问题,那么宏将顺利运行,而不会有任何报错。你需要切换到Excel界面取看你的宏运行的结果。你可以点击任务栏,或者按Alt+F11回到Excel界面。
如果宏在运行的过程中遇到错误,你将会看到一个对话框显示发现的错误类型。在你运行宏命令之前,你必须确保你的宏可以在当前激活的工作表里面运行。例如,你当前电脑上激活的时一个空的Excel工作表,你试图运行WhatsInACell,这时你将看到一个错误信息:“运行时间错误‘1004’-找不到单元格”。点击“结束”按钮,在你重新运行宏之前,确保选择了正确的工作表。
如果选择的工作表只含有文本,你在运行WhatsInACell的时候,VB试图选择含有数字的单元格时会遇到同样的“找不到单元格”的错误。
如果你忽略了With Selection.Font中的逗点,VB会出现“运行时间错误‘424’-需要对象”的信息。点击信息框上的“调试”按钮,你将进到代码窗口。同时,VB会进入“中断”模式,并且将有问题的行用黄色突出出来。在你更正代码后,VB可能会弹出信息:“这个操作将会重置你的工程,继续?”点击确定。尽管你可以在中断模式修改代码,但是,有些修改会终止宏的继续执行。更正宏代码后,重新运行它,也许你会需要解决更多的错误,之后才能顺利地运行它。你将在第二章和第十三章里面学到更多的关于如何处理VBA错误的方法。
两个层面运行宏的方法
你既可以在Excel界面运行宏,也可以在VB编辑器界面运行它。当你从VB编辑器屏幕执行WhatsInACell时,VB在屏幕之后执行这些代码。你看不到VB选择和设置格式,也看不到VB插入三空行做图例。为了观察到VB的执行情况,你必须在Excel界面,通过选择“工具”-“宏”,或者将你Excel界面和VB编辑器界面同时显示在电脑屏幕上(参见图1-6)
图1-6 如果你从VB编辑器运行宏时,想观察宏的运行情况,你必须将Excel界面和VB编辑器并排地布置在一起
按照下列步骤来并排布置你的Excel界面和VB编辑器界面:
1. 在任务栏上的空白处单击右键。任务栏在屏幕的下端,“开始”按钮的位置。
2. 下列菜单中,选择“纵向平铺窗口”
3. 最小化那些不需要的窗口,重复步骤1
4.现在,两个窗口并排显示了,点击代码的任意位置,然后按下“F5”(或者选择“运行”-“运行模块/窗体”)。坐好,观察你录制的宏在运行,不是很激动吗?稍后,你将学习如何将VB慢慢运行,这样你就可以一步一步地观察宏代码的运行情况。
完善你的宏代码
录制宏后,你可能会发现宏可以进行一些别的操作。如果你已经熟悉了VB语言,要往宏里面加指令并不是一件困难的事情。然而,在绝大多数情况下,你可以将这些工作交给Excel宏录制器,从而更有效地完成这项工作。你也许会说,Excel录制了太多的不需要的指令。但是,肯定的是,宏录制器不会犯错,你完全可以依赖于它。
如果你想要通过宏录制器在你的代码里添加指令,那么你必须录制一个新宏,然后复制需要的部分再粘贴到原来代码的正确位置。
我们来给A1:B3添加粗边框:
1. 激活图1-6看到的Excel界面
2. 选择“工具”-“宏”-“录制新宏”
3. 在宏对话框点击确定,接受默认的宏名并开始录制
4. 选择区域A1:B3
5. 选择“格式”-“单元格”,点击“边框”页
6. 在“边框样式”部分,点击“外部”按钮
7. 在边框粗细列表,点击最粗的,再点击确定关闭对话框
8. 点击单元格A1。注意,A1:B3区域有了粗边框。
9. 点击“停止录制”按钮,或者选择“工具”-“宏”-“停止录制”
切换置VB编辑器窗口,查看你录制的宏。给A1:B3(译者:原文为A1:A3)添加粗边框的代码如下:
Sub Macro2()
'
' Macro2 Macro
' Macro recorded 5/31/2002 by Julitta Korol
'
'
Range("A1:B3").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A1").Select
End Sub
现在,我们来分析一下这些录制的代码。你认为你可以去掉其中的一些指令吗?在你删除这些不必要的代码之前,考虑使用注释。在你删除任何代码之前,请将它们注释掉,然后运行宏。如果VB没有出现任何错误信息,那么你就可以安全地删除这些被注释了的代码。如果每次都按照这个指导思想,你就不会重复录制相同的操作了。如果这个宏命令没有正确地运行,那么你需要去掉刚才的注释,毕竟,这些代码可能是必须的。关于注释的详细信息,参见第二章。
当你使用宏录制器来创建宏的时候,你可以很快地掌握Excel菜单选项和对话框设置在VBA里的等同方法。然后,你可以在在线帮助里面查找这些VB指令的意思和用法。很显然,VB要执行越多的指令,宏运行的速度就越慢。去掉那些无关紧要的命令会加速宏的运行。然而,为了使你的代码容易理解,你需要戴上你的侦探帽子,寻求最佳途径。例如,看一下你录制的给选中的单元格加外框的宏。看上去,宏录制器是在分别地给每一条线进行设置。VB没有一个简单的一句命令来给选中的区域加外边框,这似乎很难理解。学习任何语言中正确的词语和表达是很费时的。时间一长,你会发现VB实际上有一个另外的方法BorderAround让你在单元格区域添加边框和设置颜色,线型和新边框的粗细。下面的语句是VBA中给选中的单元格设置外围粗边框的最佳方法:
Range("A1:B3").BorderAround Weight:=xlThick
上面的指令使用Range对象的BorderAround方法。它给A1:B3区域添加了一个粗线外框。(下一章涵盖了VB对象,属性和方法)。
现在我们将上面的指令加到宏WhatsInACell里面去:
1. 激活含有宏WhatsInACell的代码窗口
2. 在ActiveCell.FormulaR1C1 = "Formulas"之后插入一行
3. 在空白行加入以下指令:
Range("A1:B3").BorderAround Weight:=xlThick 4
4. 光标放在宏代码的任何位置,按F5运行修改好的代码。
技巧1-7:附加指令
要在现存的代码中添加指令的话,通过在需要的位置按回车键加入空白行,并且输入必要的VB语句。如果附加指令是键盘操作或菜单命令的话,你可以使用宏录制器来创建必要的代码,然后将它们复制粘贴到原来的宏里面。
假设你想要VB在执行完最后一行代码时给你提示,这种操作是不可能被录制下来的,因为Excel没有相应的菜单选项。但是,你可以手动使用VB语言在你的代码里面添加指令。
1. 在代码窗口下,在End Sub前回车
2. 光标放在空白行,输入下列语句:
MsgBox "所有操作都已完成。"(译者:英文状态下的引号。)
3. 确保光标在代码里,按下F5
4. VB执行完最后一个指令后,弹出这个信息。点击确定。你现在知道宏已经运行完成。
MsgBox是用得非常频繁的VBA函数之一,你将在第四章中学习它的使用。
重新命名宏
在代码里面添加了一些代码后,为了更好地反映这个宏的目的,你需要将其改名。过程的名称应该越接近它的功能越好。你不需要按任何键就可以更改宏名。在代码窗口,你将关键词Sub后面老的宏名清除,并且打入新的名称即可。
运行宏的其它方法
到现在为止,你已经学习了运行宏的方法。你已经知道通过选择“工具”-“宏”-“运行宏”来运行宏。不幸的是,如果你需要经常运行宏,这种方法是不方便的。你也可以在VB编辑器窗口使用快捷键F5或者通过选择“运行”-“运行模块/窗体”来运行宏。此外,你还可以在VB编辑器窗口点击标准工具栏上的按钮来运行宏(见图1-7)。
图1-7 VB过程可以通过标准工具栏来运行
使用键盘快捷键运行宏
流行的方法是通过设置一个快捷键来运行宏。按Ctrl+Shift+D比从宏对话框激活宏要容易得多。你必须给宏设置一个快捷键,之后才能使用它。
1. 按Alt+F8快速打开宏对话框
2. 点击宏清单里的WhatsInACell,然后选择选项按钮
3. 弹出宏选项对话框,如图1-8。光标定位在快捷键文本框里
4. 按下Shift键和键盘是的字母I。Excel录制下了快捷键Ctrl+Shift+I
5. 点击确定以关闭宏选项对话框
6. 点击取消返回工作表。试试用你刚设置的快捷键来运行宏,确保激活了Excel窗口,然后按下Ctrl+Shift+I
图1-8 使用宏选项对话框设置键盘快捷键来运行宏
技巧1-8:避免快捷键冲突
如果你给宏设置的快捷键和Excel内置的快捷键冲突,而且你打开的又正是含有那个宏的工作表,那么按下该快捷键后Excel会运行你自己的宏。
通过菜单运行宏
如果你宁愿通过菜单来运行宏,那么你可以将你的宏做成一个菜单选项。使用“自定义菜单”对话框,你可以快速的将你的宏命令加入到任何Excel的内置菜单中。
1. 在Excel界面工具栏的空白处,单击右键,选择“自定义菜单”
2. 在自定义菜单对话框选择“命令”页
3. 在“类别”清单里选择“宏”
图1-9 创建自定义菜单(第一步)
4.将“自定义菜单”拖曳至工具菜单里去。当工具菜单展开时,你可以将按钮放在任意地方。图1-10显示了自定义菜单在工具菜单的最下面。
图1-10 创建自定义菜单(第二步),你可以将自定义菜单放在Excel菜单里,也可以放在子菜单里
5.在菜单项上单击右键,并且在快捷菜单“名称”的文本框里,将其改成你想要的名字(参见图1-11)。例如,将名称改为“Contents of Ce&lls”。连接符用以表示键盘快捷键。将连接符放在你想显示下划线的字符之前。这个自定义菜单将会显示为“Contents of Cells”,注意,菜单里面字与字之间可以有空格。
6.选择最后一个选项(快捷菜单上)——“指定宏”(参见图1-11)。在宏对话框,选择宏“WhatsInACell”,点击确定,关闭自定义菜单对话框。
现在,你的宏可以通过自定义菜单来运行了。如果你没有给自定义菜单选项指定宏就关闭了这个快捷菜单,Excel在你第一次试图使用这个自定义菜单选项时会提示你要宏名。
7. 选择“工具”-“Contents of Cells”,或者按Alt+T和l来运行宏。如果你在做上述操作时,清除了内置菜单或菜单选项,可以打开自定义菜单对话框,点击工具页,然后选择“重置”按钮就可以恢复了。然而,这样操作后,会恢复Excel默认设置,你的自定义菜单选项也不复存在了。
图1-11 创建自定义菜单(第三步)你可以使用快捷菜单给菜单选择重命名,已经设置你自己的宏。你必须先打开自定义菜单,才能使用该快捷菜单
通过工具栏按钮运行宏
如果你喜欢使用工具栏里的按钮,你可以轻易地在任何工具栏里添加按钮,并且指定你自己的宏。我们来添加WhatsInACell到工具栏去。
1. 选择“工具”-“自定义”
2. 在自定义对话框,点击“命令”页
3. 在类别清单里选择宏
4. 拖曳“自定义按钮”图标到工具栏的任何地方。在本例中,这个按钮放在标准工具条中格式刷的右边。
5.修改按钮的工具提示:在按钮上单击右键,然后在出现的快捷菜单的名称选项中,编辑名称文本。本例中,将工具提示改为“Contents of Ce&lls”
6.修改按钮图标:在按钮上单击右键,并且选择“修改按钮图标”,出现42个Excel预先设计的图标供你选择。本例中,用铅笔图标取代了默认的图标
7. 给按钮指定宏:在按钮上单击右键,并且选择“指定宏”
8. 选择“WhatsInACell”点击确定
9. 点击关闭,关闭自定义对话框
10. 光标指向你刚才创建的自定义按钮上,按钮的旁边显示工具提示“Contents of Cells”(参见图1-12)。点击按钮运行宏
图1-12 你可以在任何工具栏添加自定义按钮来运行宏
通过工作表里面的按钮运行宏
在本书后面,你将学习如何在工作表中添加按钮,帮助Excel初学者做数据输入。现在,我们来过一遍如何将宏WhatsInACell指定在一个工作表的按钮上。
1. 激活含有数据的工作表
2. 选择“视图”-“工具栏”,并且选择“窗体”。窗体工具栏出现了,如图1-13
图1-13 你可以将宏指定给一个工作表里的按钮
3. 在窗体工具栏上点击按钮
4. 在工作表任意地方点击一下
5. 当出现指定宏对话框时,选择宏名(WhatsInACell)然后点击确定
6. 改变按钮1的名称:确保选中了按钮,并且输入名称“Contents of Cells”。按钮被选中后,它就像图1-13里显示的一样。如果选择的符号没有显示,在按钮上单击右键,并且在快捷菜单上选择“编辑文本”,选择默认的文字,然后输入新的名称
7. 按钮重命名后,在工作表按钮之外的任何地方点击一下退出按钮编辑状态
8. 点击你刚才创建的按钮,运行宏
图1-14 控件工具箱的默认工具
技巧1-9 往工作表里添加控件
你可以使用窗体工具栏往工作表里添加控件(参见图1-13),也可以使用控件工具箱(参见图1-14)。两种工具栏都可以通过视图选择工具栏选项来获得。
窗体里的控件和Excel的早期版本(5.0,7.0和97)兼容,并且可以用在图表,老的XLM宏表和所有你想通过点击控件来运行宏的工作表里。
控件工具箱里的控件就是人们熟知的ActiveX控件。你可以将ActiveX控件放在工作表或者你用VB编辑器创建的窗体上。然而,窗体工具栏上的控件只对点击(Click)事件反应,ActiveX控件则有许多行为,或者说事件,发生于你使用它的时候。
当你使用窗体控件时,你给它指定宏。这个宏时储存在本工作表,新工作表或者个人宏工作簿的一个模块里。当你使用ActiveX控件时,书写的宏代码时储存在控件本身的。
保存宏
在这章中,你创建的宏WhatsInACell位于一个Excel工作表中。你需要保存这个开启了的工作表来保存这个宏。我建议你将其保存为Chap01.xls。保存后,关闭它,然后打开一个新工作表。注意,你工具栏上的自定义按钮还在那儿,正如工具菜单里的Contents of Cells样还在那儿一。在你使用这些工具运行宏之前,请在单元格A1里输入“Addition”,A2里输入数字2,A3里输入数字4,已经A4里输入“=SUM(A2:A3)”。当你运行这个宏时,Excel会打开适当的工作表并且执行这个指定给自定义工具的过程。
打印宏
如果你要将你的宏归档起来,或者在你离开电脑的时候研究宏代码,你就需要打印宏。你可以打印你储存宏的整个模块,也可以打印选择的行。
打印含有宏的整个模块:
1. 将光标放在模块的任意地方
2. 选择“文件”-“打印”
3. 在打印-VBA对话框,选择“当前模块”
4. 点击确定打印模块
打印选中的文本:
1. 在模块里,选择你要打印的文本
2. 选择“文件”-“打印”
3. 在打印-VBA对话框,选择“选择”
4. 点击确定打印选中的文本
保存宏在个人宏工作簿
当你录制宏时,可以将它保存在个人宏工作簿里面。当你储存宏在个人宏工作簿里时,Excel创建一个名为“Personal.xls”的文件并且放在“Program Files\Microsoft Office\Office”的子文件夹——XLStart文件夹里。保存在XLStart文件夹的文件每次在Excel启动的时候都会自动打开。个人宏工作簿是一个保存通用宏代码的方便的地方,就像下面这个宏。现在来录制一个通用的宏“FormulasOnOff”。这个宏的目的是设置是否显示工作簿的公式。
1. 选择“工具”-“宏”-“录制新宏”
2. 在录制宏对话框,输入宏名“FormulasOnOff”
3. 在保存宏的下拉菜单里选择“个人宏工作簿”
4. 点击快捷键文本框,并且按下“Shift+F”
5. 选择确定退出录制宏对话框
6.按下“Ctrl+~”打开公式的显示,或者选择“工具”-“选项”并且点击“视图”页上“窗口选项”中的“公式”检验盒。当你打开公式显示时,工作簿单元格里显示的是公式,而非这个公式计算出来的数值。如果你是在一个空白工作表中录制这个宏的,那么你将注意到的唯一变化是工作表的列宽。
7. 点击“停止录制”,或者选择“工具”-“宏”-“停止录制”
8. 查看代码:按下Alt+F11,或者选择“工具”-“宏”-“VB编辑器”
这时,VB编辑器屏幕上的工程窗口里显示了一个多出来的VBA工程(Personal.xls)。点击这个过程名左边的加号来打开这个工程。这个VBA工程包含两个文件夹:Excel对象和模块。点击模块文件夹的加号来打开它,然后双击模块1。这时代码窗口显示了宏FormulasOnOff的内容(参见图1-15)。每个Excel工作表只有一个工程。你第一次录制宏的时候,Excel创建一个模块文件夹,并且将你的代码储存在模块1里面。如果你在相同的工作表里录制另一个宏,Excel将其放在前一个录制的宏的同一个模块1的下面。相同工作时间录制的所有的宏都储存在相同的模块里面。但是,如果你关闭Excel,然后再重新这个工作簿,Excel就会将它储存在一个新的模块。
图1-15 在工程浏览器窗口,你可以选择你需要的工程
录制宏的时候,你打开了公式的显示。这个宏的名称表明可以切换公式显示的开和关。你必须修改代码才能确保它按照这种方式运行。
录制的宏设置当前窗口显示公式为真:
ActiveWindow.DisplayFormulas = True
设置为“False”将关闭公式的显示:
ActiveWindow.DisplayFormulas = False
为了在VBA里设置转换,你需要按照下面的方法来连接两语句:
ActiveWindow.DisplayFormulas = Not ActiveWindow.DisplayFormulas
用上面的语句代替你录制的代码,并且运行这个宏。无论你运行多少次,这个宏总是知道做什么。你可以使用相同的思路来创建代码以切换格式线或其它Excel特点的显示与否。当你关闭Excel时,它会提示你保存个人宏工作簿的变化,点击确定以保存变化。当你重启Excel,个人宏工作簿会在后台自动开启。
如果你想要在个人宏工作簿里保存其它的宏,你可以选择下列方法中的一个:
§ 录制一个新宏,并且选择个人宏工作簿来储存
§ 切换到VB编辑器,打开你要移动到个人宏工作簿里去的宏,剪切这个宏,并且打开个人宏工作簿。将宏粘贴到已经存在的模块中,或者创建一个新模块再粘贴
§ 选择“文件”-“导入文件”……从另外一个VB工程(*.frm,*.bas,*.cls)导入宏代码
打开含有宏的工作簿
无论何时你打开一个含有宏的工作簿,Excel显示一个警告信息,如图1-16。为了避免显示这个警告信息,你可以通过安全对话框关闭病毒保护(参见图1-17)。
当病毒信息出现时,你可以选择:
§ 取消宏——当你打开一个来源不熟悉的含有宏的工作簿,例如因特网,电子邮件,为了保护你的电脑不被宏病毒破坏,你应该选择“取消宏”。工作簿打开时不会运行它里面的任何宏。如果没有密码保护的话,你就可以切换到VB编辑窗口查看代码。查看代码后(译者:如果代码安全),你可以关闭该工作簿,然后重新打开它并且启用宏。
图1-16 如果你打开了病毒保护,当工作簿含有宏时,Excel 会弹出一个警告信息
§ 启用宏——你如果指定这个工作簿来自于一个可靠的来源,也含有有用的宏,点击启用宏按钮。
§ 更多信息——在你决定取消或者启用宏时,如果你需要了解更多的信息,那么点击这个按钮。Excel 2002 有一个有用的功能让你自动取消所有没有签名并且来源不明的宏。选择“工具”-“宏”-“安全”进入这个功能。
当你创建一个需要给别人使用的宏时,你可以使用VB编辑器工具菜单里的数字签名来确认这个宏不会带来病毒。宏的数字签名正如在纸上的签名。请在Excel在线帮助里搜索如何安装和创建你自己的数字签名。输入“数字签名”就可以获得相关主题。
图-17 选择中间的选项,让你根据工作簿决定是否取消或者启用宏
VB编辑窗口
现在,你已经知道如何录制,运行和修改宏了,让我们花些时间来熟悉VB编辑器的一些特点。使用VB编辑器上的工具,你能够:
§ 编写你自己的宏过程
§ 创建自定义窗体
§ 查看和修改对象属性
§ 测试VBA过程和定位错误
有两种方法进入VB编辑器:
§ 从Excel界面的工具菜单:选择“工具”-“宏”-“宏编辑器”
§ 从键盘:按下Alt+F11
§ (译者:在工作表标签上单击右键,然后选择查看代码)
了解工程浏览窗口
工程窗口显示当前打开的工程和它的组成部分清单。VBA工程包括下列组成:
§ 工作表
§ 图表
§ 当前工作簿——工程储存的工作簿
§ 模块
§ 类模块——特殊的模块让你可以创建自己的对象
§ 窗体
§ 引用到其它工程
通过工程浏览器,你可以管理你的工程,容易地在当前打开的工程中切换。
你可以通过三种途径激活工程浏览器:
§ 通过视图菜单,选择工程浏览器
§ 通过键盘,按下Ctrl+R
§ 通过工具栏,点击工程浏览器按钮(参见图1-18)
工程浏览器有三个按钮。左边第一个按钮(查看代码)显示当前选中的模块(译者:或者窗体)里的代码窗口。中间那个按钮(查看对象)显示Excel界面当前工作表,或者窗体文件夹里面的窗体。右边的按钮(切换文件夹)隐藏或者显示工程浏览器里的文件夹。
图-18 标准工具栏上的按钮提供了快速的方式进入许多VB特征
了解属性窗口
属性窗口让你查看你工程里的对象和设置它们的属性。当前选中的对象的名称就显示在属性窗口的标题栏下面的对象栏。对象的属性可以按照字母顺序查看,也可以按类别查看(参见图1-19)。
图1-19 属性窗口显示的是当前被选中的对象的属性设置
§ 字母顺序——按字母顺序地列出被选择的对象的所有属性。通过选择属性名,并且输入或者选择新的设置,来更改属性设置。
§ 类别——按类别列出被选中的对象的所有属性。你可以将清单折叠起来,查看类别,你也可以展开类别查看属性。类别名称左边的加号(+)说明这个类别可以展开。减号(-)说明这个类别已经展开。
有三种方式可以进入属性窗口:
§ 视图菜单,选择属性窗口
§ 从键盘,按下F4
§ 从工具栏,点击属性窗口按钮(参见图1-18)
了解代码窗口
代码窗口是用来VB编程的,也是用来查看,修改录制的宏代码和现存的VBA工程的。每个模块会以一个专门的窗口打开。有好几个方法可以激活代码窗口:
§ 从工程浏览器窗口,选择你要的用户窗体或者模块,然后点击查看代码按钮
§ 从菜单,选择“视图”-“代码”
§ 从键盘,按下F7
在代码窗口的上面,有两个下拉清单列表(参见图-20),方面你快速地移动到任意代码处。在代码窗口左上角的对象列表框,你可以选择你想查看代码的对象。你可以在代码窗口右上角的列表框里选择一个过程或者事件过程查看代码。当你打开这个列表框,这个模块里的所有过程名按字母顺序排列在那儿。如果你选择了一个过程,光标就会跳到那个过程的第一行处。
将列分工具条(参见图1-20)拖曳下列,你就可以将代码窗口分为两半了(参见图1-21)。
图1-20 代码窗口有几个部分,使得定位过程和查看代码变得很轻松
你可以查看不同的代码部分了。这样设置代码窗口,目的是方便在同一个模块内的过程里复制或剪切,并且粘贴代码片断。只要简单地将列分工具条拖曳至代码窗口上面就行。代码窗口的底部有两个图标。点击“过程查看”图标,代码窗口里一次只显示一个过程,可以通过过程/事件列表框选择另外的过程。点击“全部模块查看”则可以显示这个模块里的所有过程。使用竖向滚动条可以在代码中滚动。
页边指示工具条是在修改代码和调试是提供一些帮助指示的。如果你想快速查看关于指示的信息,请看第十三章。
图1-21 你可以将代码窗口列分为两个窗口来查看长过程
VB编辑器里的其它窗口
除了代码窗口,VB环境下还有很多其它窗口频繁地被使用:
窗体窗口用来创建自定义对话框和用户窗体。
图1-22 在选项里,你可以选择显示哪些窗口
你将在第十章里学习到更多的这类知识。
图1-22显示了一些可以显示了VB编辑器里的窗口清单。你将在第二章里(对象浏览器,立即窗口)和在第三章里(当地窗口,观察窗口)学习如何使用这些窗口。
接下来……
通过一些电子表格自动化的例子,你不但已经如何录制宏,而且也已经学习了如何查看,阅读和修改VB代码。还有,你也尝试了用许多方法运行。最后,你还快速过了一遍VB编辑器窗口。
在下一章,我们将会给你介绍VBA基础,你将学习许多新术语,更重要的是,你将获得有用的VBA词汇表,这将帮你将更多的任务交给Excel帮你完成。