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

excel_vba_编程教程(完整版)-第章

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



这时,你可以通过按F8或者选择调试…逐语句来一行一行地运行代码。  
我们来看看下面一个方案,看看它是如何工作的。假设在过程ChangeCode的执行中下面的代码行会 
出问题:  
ActiveCell。Formula = 〃=VLookup(RC'1';Codes。xls!R1C1:R6C2;2)〃   
1。  准备好如图13…2和13…3所示的电子表格。保存图13…2所示的数据为Chap13。xls,图13…3所示的 
    数据为Codes。xls。关闭文件Codes。xls。  

                                                                              
    图13…2 本文件中输入在D列的编号将会在过程ChangeCode中被显示于土13…3中的编号所代替  

                                          250 

… 页面 267…

2。 
      
    图13…3 过程ChangeCode使用该编号表作查找目的  
      
3。  激活文件Chap13。xls,切换到VB编辑器窗口  
4。  使用属性窗口重新命名VBAProject(Chap13。xls)为Debugging  
5。  插入模块到Debugging (Chap13。xls)工程,并且更改名Name属性为Breaks  
6。  输入过程代码ChangeCode,如下所示:  
     Sub ChangeCode()   
         Workbooks。Open FileName:=〃C:Codes。xls〃 ‘将此处文件路径改为你的真实路径  
         Windows(〃Chap13。xls〃)。Activate   
         Columns(〃D:D〃)。Select   
         Selection。Insert Shift:=xlToRight   
         Range(〃D1〃)。Select   
         ActiveCell。Formula = 〃Code〃   
         Columns(〃D:D〃)。Select   
         Selection。SpecialCells(xlBlanks)。Select   
         ActiveCell。Formula = 〃=VLookup(RC'1';Codes。xls!R1C1:R6C2;2)〃   
         Selection。FillDown   
         With Columns(〃D:D〃)   
              。EntireColumn。AutoFit   
              。Select   
         End With   
         Selectionpy   
         Selection。PasteSpecial Paste:=xlValues   
         Rows(〃1:1〃)。Select   
         With Selection   
              。HorizontalAlignment = xlCenter   
              。VerticalAlignment = xlBottom   
              。Orientation = xlHorizontal   
         End With   
         Workbooks(〃Codes。xls〃)。Close   
     End Sub   
7。  在过程ChangeCode里,点击下述语句行的任意地方:  
    ActiveCell。Formula = 〃=VLookup(RC'1';Codes。xls!R1C1:R6C2;2)〃   
8。  按下F9(或者选择调试…切换断点)来在光标所在处设置一个断点。设置断点的另外一种方法 
    是点击你要暂停程序的代码左边的页边。同时,带断点的代码行显示为白字紫红底色(见图 
    13…4)。断点的颜色可以在选项对话框(工具菜单)的编辑器格式页上更改。  

                                         251 

… 页面 268…

                                                                                           
图13…4 设置了断点的代码行显示了选项对话框里编辑器格式设定的颜色  
9。  运行过程ChangeCode。当你运行该过程时,VB将执行所有的语句,直到它遇到该断点。一旦遇 
    到断点,代码便暂停了,并且屏幕显示代码窗口(见图13…5)。VB在该语句左边的页边上显示 
    一个黄色箭头。同时,该语句出现在一个黄色底色的框里面。错误和框表明当前语句将要被执 
    行。如果当前语句也包含一个断点,那么页边将重叠显示它们(圆圈和箭头)。  

                                                                                             
图13…5 当VB遇到断点时,就会显示代码窗口并且指定当前语句  
10。 按F8,或者选择调试…逐语句  
11。 重复几次步骤9的指令  
12。 按F5(或者选择运行宏)来继续运行该过程,不必逐语句运行该过程。当你运行完该过程后, 
    VB不会自动删除断点。注意带有VLookup函数的代码行还是加亮的。  
    在本例中,你只设置了一个断点。VB允许你在一个过程里设置任意多个断点。这样,你就可以 
    随心所欲地暂停和继续你过程的执行了。你可以分析你的程序代码、检查执行暂停时变量的值。 
    你也可以通过在立即窗口里敲入语句进行各种各样的测试。  
13。 通过选择调试…清除所有断点,或者按下Ctrl+Shift+F9,可以清除断点。  
    所有断点都被清除了。如果你在某个过程里面设置了多个断点,并且想要只清除其中的一个或 

                                          252 

… 页面 269…

    几个,那么可以点击你想要清除断点的代码行并且按下F9(或者选择调试…切换断点)。当断点 
    不再需要时,你应该清除它们。当你关闭文件时,所有断点将自动被清除。  
技巧13…2 什么时候使用断点  
如果你怀疑你的过程根本就没有执行过某段代码块的话,那么设置断点。  

4。在中断模式下使用立即窗口  

一旦程序执行中断,当代码窗口出现时,你可以激活立即窗口并且输入VBA指令,例如,来查明哪 
一个单元格是当前活动的或者活动工作表名称是什么。你也可以使用立即窗口来更改变量的内容, 
以便改正可能导致错误的值。到现在,你应该已经是个使用立即窗口的专家了。图13…6显示了该暂 
停的过程ChangeCode,和在中断模式下,向VB问问题的立即窗口。  
在中断模式下,你可以很快地查明代码窗口里变量的内容。只要在运行的过程中简单地将光标移动 
到变量上,就可以知道该变量的内容了。例如图13…7里所示的VarValue过程,断点设置在第二次出 
现的Workbooks。Add语句上。  

                                                                                            
图13…6 当代码执行被暂停时,通过输入适当的语句到立即窗口里,你就可以找到很多问题的答案  

                                                                                        
图13…7 在中断模式下,你可以将鼠标指向某个变量,查明该变量的值  
                                         253 

… 页面 270…

当VB遇到该语句,代码窗口(中断模式)就会出现。因为VB已经执行了那条语句,将当前活动工作 
簿名称储存到变量myName(译者:原文为myBook),所以你将鼠标指向该变量名称时,就可以查明 
该变量的值。该变量名称及其当前值出现在文字框里面。要同时显示过程里使用的多个变量的值的 
话,你就应该使用当地窗口,本章的后面将会讨论到。  

5。使用 Stop 语句  

有时候,你不能马上测试你的程序,如果你设置了断点,然后关闭该文件,那么Excel就会清除你 
的断点,而下次当你准备测试程序时,你将不得不再次设置你的断点。如果你需要推迟测试工作, 
那么你可以使用不同的方式,简单的在你需要暂停程序的地方插入一个Stop语句。图13…8显示了 
For…Next循环之前的Stop语句。当VB遇到Stop语句,它就会暂停过程StopExample的执行,屏幕会 
显示中断模式下的代码窗口。尽管Stop语句和设置断点具有完全一样的效果,但是,它有一个弱点 
——所有Stop语句都留在程序里,直到你一个一个清除它们。当你不再需要暂停程序时,你必须定 
位并且清除所有的Stop语句。  

                                                                                          
图13…8 你可以在VBA过程代码的任何地方插入Stop语句,当程序到达Stop语句时就会暂停,并且出 
现代码窗口,加亮该行  
技巧13…3 在中断模式下在代码窗口内部工作  
在中断模式下,你可以改变代码、添加新语句、每次执行一行语句、跳过代码行、设置下一条语句、 
使用立即窗口、以及更多。当VB处于中断模式时,调试菜单上所有的选项都可用了。你可以通过按 
下Esc,Ctrl+Break,或者通过设置断点,进入中断模式。  
当你在中断模式下时,如果你更改某些代码,VBA将会提示你重新设置工程,显示如下错误信息: 
 “该操作将重新设置工程,继续吗?”你可以点击确定,终止程序执行并继续编辑你的代码,或者 
点击取消,删除新变化并从中断点继续运行代码。要查看该错误的话,可以将程序进入中断模式, 
然后更改变量的声明,当你按下F5恢复代码执行的时候,VBA就会提示你重新设置你的工程。  

6。添加监视表达式  

程序中的许多错误是由变量获得未预期的值导致的。如果某个过程使用了一个变量,在不同的地方 
有不同的值,你可能想要停止程序查看该变量的当前值。VB提供了一个特别的监视窗口,允许你在 
过程运行时密切注视变量或者表达式。  
进行下述操作,给你的过程添加监视表达式:  
1。  在代码窗口,选择你想要监视的变量  
2。  选择调试…添加监视  
    屏幕上会显示添加监视对话框,如图13…9所示。  
    添加监视对话框包含三部分,描述在下表中:  
表达式            显示你的过程中加亮变量的名称。如果你打开添加监视对话框时没有选择 

                                           254 

… 页面 271…

                  变量名�
返回目录 上一页 下一页 回到顶部 赞(2) 踩(3)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!