2. 下列菜单中,选择“纵向平铺窗口”
3. 最小化那些不需要的窗口,重复步骤1
4. 现在,两个窗口并排显示了,点击代码的任意位置,然后按下“F5”(或者选择“运行”-“运
行模块/窗体”)。坐好,观察你录制的宏在运行,不是很激动吗?稍后,你将学习如何将VB慢
慢运行,这样你 就可以一步一步地观察宏代码的运行情况。
12 完善你的宏代码
录制宏后,你可能会发现宏可以进行一些别的操作。如果你已经熟悉了VB语言,要往宏里面加指令
并不是一件困难的事情。然而,在绝大多数情况下,你可以将这些工作交给Excel宏录制器,从而
更有效地完成这项工作。你也许会说,Excel录制了太多的不需要的指令。但是,肯定的是,宏录
制器不会犯错,你完全可以依赖于它。
如果你想要通过宏录制器在你的代码里添加指令,那么你必须录制一个新宏,然后复制需要的部分
再粘贴到原来代码的正确位置。
我们来给A1:B3添加粗边框:
1. 激活图1-6看到的Excel界面
2. 选择“工具”-“宏”-“录制新宏”
3. 在宏对话框点击确定,接受默认的宏名并开始录制
4. 选择区域A1:B3
5. 选择“格式”-“单元格”,点击“边框”页
6. 在“边框样式”部分,点击“外部”按钮
7. 在边框粗细列表,点击最粗的,再点击确定关闭对话框
25
… 页面 42…
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
lorIndex = xlAutomatic
End With
With Selection。Borders(xlEdgeTop)
。LineStyle = xlContinuous
。Weight = xlThick
lorIndex = xlAutomatic
End With
With Selection。Borders(xlEdgeBottom)
。LineStyle = xlContinuous
。Weight = xlThick
lorIndex = xlAutomatic
End With
With Selection。Borders(xlEdgeRight)
。LineStyle = xlContinuous
。Weight = xlThick
lorIndex = 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
26
… 页面 43…
上面的指令使用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函数之一,你将在第四章中学习它的使用。
13 重新命名宏
在代码里面添加了一些代码后,为了更好地反映这个宏的目的,你需要将其改名。过程的名称应该
越接近它的功能越好。你不需要按任何键就可以更改宏名。在代码窗口,你将关键词Sub后面老的
宏名清除,并且打入新的名称即可。
14 运行宏的其它方法
到现在为止,你已经学习了运行宏的方法。你已经知道通过选择“工具”-“宏”-“运行宏”来
运行宏。不幸的是,如果你需要经常运行宏,这种方法是不方便的。你也可以在VB编辑器窗口使用
快捷键F5或者通过选择“运行”-“运行模块/窗体”来运行宏。此外,你还可以在VB编辑器窗口
点击标准工具栏上的按钮来运行宏(见图1-7)。
图1-7 VB过程可以通过标准工具栏来运行
15 使用键盘快捷键运行宏
流行的方法是通过设置一个快捷键来运行宏。按Ctrl+Shift+D比从宏对话框激活宏要容易得多。你
必须给宏设置一个快捷键,之后才能使用它。
1. 按Alt+F8快速打开宏对话框
2. 点击宏清单里的WhatsInACell,然后选择选项按钮
3. 弹出宏选项对话框,如图1-8。光标定位在快捷键文本框里
4. 按下Shift键和键盘是的字母I。Excel录制下了快捷键Ctrl+Shift+I
5. 点击确定以关闭宏选项对话框
6. 点击取消返回工作表。试试用你刚设置的快捷键来运行宏,确保激活了Excel窗口,然后按下
Ctrl+Shift+I
27
… 页面 44…
图1-8 使用宏选项对话框设置键盘快捷键来运行宏
技巧1-8:避免快捷键冲突
如果你给宏设置的快捷键和Excel内置的快捷键冲突,而且你打开的又正是含有那个宏的工作表,
那么按下该快捷键后Excel会运行你自己的宏。
16 通过菜单运行宏
如果你宁愿通过菜单来运行宏,那么你可以将你的宏做成一个菜单选项。使用“自定义菜单”对话
框,你可以快速的将你的宏命令加入到任何Excel的内置菜单中。
1. 在Excel界面工具栏的空白处,单击右键,选择“自定义菜单”
2. 在自定义菜单对话框选择“命令”页
3. 在“类别”清单里选择“宏”
图1-9 创建自定义菜单(第一步)
4. 将“自定义菜单”拖曳至工具菜单里去。当工具菜单展开时,你可以将按钮放在任意地方。
图1-10显示了自定义菜单在工具菜单的最下面。
28
… 页面 45…
图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来运行宏。如果你在做上述操作时,
清除了内置菜单或菜单选项,可以打开自定义菜单