友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
八万小说网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

excel_vba_编程教程(完整版)-第12部分

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



1.  在下面的代码中,删除带删除线的行:  
       With Selection。Font   
              。Name = 〃Arial〃   
              。FontStyle = 〃Bold〃   
              。Size = 10   
              。Strikethrough = False   
              。Superscript = False   
              。Subscript = False   
              。OutlineFont = False   
              。Shadow = False   
              。Underline = xlUnderlineStyleNone   
              lorIndex = 13   
       End With   
    清除后,在关键词With和End With之间只剩下了两句代码,这些才是你在录制宏的时候真正做 
    的设置:  
       With Selection。Font   
              。FontStyle = 〃Bold〃   
              lorIndex = 13   
       End With   
2.  找到设置数字单元格格式的代码,依照下面的例子修改代码:  
       ' Find and format cells containing numbers   
       With Selection   
              。SpecialCells(xlCellTypeConstants; 1)。Select   
              。FontlorIndex = 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〃   
              lorIndex = 3   

                                           23 

… 页面 40…

        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”。  

10 测试修改好的宏  

当你修改宏的时候,很可能会带入一些错误。例如,你可能会删除一行重要的代码,或者可能不注 
意清除或忽略了一个逗点(停顿)。为了确保你的宏在你修改之后还能正确地工作,你必须运行它。  
在VBE窗口,将光标放在宏代码WhatsInACell的任意行,选择“运行”-“运行模块/窗体”  
如果你在修改代码的时候,没有带入任何问题,那么宏将顺利运行,而不会有任何报错。你需要切 
换到Excel界面取看你的宏运行的结果。你可以点击任务栏,或者按Alt+F11回到Excel界面。  
如果宏在运行的过程中遇到错误,你将会看到一个对话框显示发现的错误类型。在你运行宏命令之 
前,你必须确保你的宏可以在当前激活的工作表里面运行。例如,你当前电脑上激活的时一个空的 
Excel工作表,你试图运行WhatsInACell,这时你将看到一个错误信息:“运行时间错误‘1004’- 
找不到单元格”。点击“结束”按钮,在你重新运行宏之前,确保选择了正确的工作表。  
如果选择的工作表只含有文本,你在运行WhatsInACell的时候,VB试图选择含有数字的单元格时会 
遇到同样的“找不到单元格”的错误。  
如果你忽略了With Selection。Font中的逗点,VB会出现“运行时间错误‘424’-需要对象”的信 
息。点击信息框上的“调试”按钮,你将进到代码窗口。同时,VB会进入“中断”模式,并且将有 
问题的行用黄色突出出来。在你更正代码后,VB可能会弹出信息:“这个操作将会重置你的工程, 
继续?”点击确定。尽管你可以在中断模式修改代码,但是,有些修改会终止宏的继续执行。更正 
宏代码后,重新运行它,也许你会需要解决更多的错误,之后才能顺利地运行它。你将在第二章和 
第十三章里面学到更多的关于如何处理VBA错误的方法。  

11 两个层面运行宏的方法  

你既可以在Excel界面运行宏,也可以在VB编辑器界面运行它。当你从VB编辑器屏幕执行 
WhatsInACell时,VB在屏幕之后执行这些代码。你看不到VB选择和设置格式,也看不到VB插入三空 
行做图例。为了观察到VB的执行情况,你必须在Excel界面,通过选择“工具”-“宏”,或者将你 
Excel界面和VB编辑器界面同时显示在电脑屏幕上(参见图1-6)  

                                              24 

… 页面 41…

  
图1-6 如果你从VB编辑器运行宏时,想观察宏的运行情况,你必须将Excel界面和VB编辑器并排地 
布置在一起  
按照下列步骤来并排布置你的Excel界面和VB编辑器界面:  
1.  在任务栏上的空白处单击右键。任务栏在屏幕的下端,“开始”按钮的位置。  
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来运行宏。如果你在做上述操作时, 
     清除了内置菜单或菜单选项,可以打开自定义菜单对话框,点击工具页,然后选择“重
返回目录 上一页 下一页 回到顶部 3 3
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!