《excel_vba_编程教程(完整版)》

下载本书

添加书签

excel_vba_编程教程(完整版)- 第18节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
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来运行宏。如果你在做上述操作时, 
     清除了内置菜单或菜单选项,可以打开自定义菜单
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架