设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel2013教程] Excel中VBA程序代码的调试技巧

[复制链接]
跳转到指定楼层
楼主
发表于 2017-1-16 17:27:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
                               

                        对于应用程序的开发,程序调试是一个重要步骤。VBA程序的调试有3种模式,它们是设计时、运行时和中断模式。Excel的Visual Basic编辑器提供了丰富的调试工具,包括断点调试、“立即窗口”、“本地窗口”和“监视窗口”等。本文介绍了Excel中VBA程序代码的调试技巧。
        1、打开工作表并切换到Visual Basic编辑器,本示例的程序代码如下所示。在“代码”窗口中找到需要设置断点的语句,将光标放置到代码行中,选择“调试”|“切换断点”命令设置断点,如图1所示。按F5键运行程序,程序运行到断点位置即会暂停,同时标示出暂停位置,如图2所示。再次按F5键程序将继续运行。
       

        图1 创建断点

       

        图2 程序在断点处暂停

        Sub countcir()
        Dim i As Integer
        Dim s As Integer
        s=0 '初始化汇总变量以及起始数
        i=0
        Do
        i=i+1 '设置下一个被加数i的大小
        s=s+i '将被加数汇总到变量s中
        If s>=5000 Then Exit Do '当s≥5000,执行Exit Do语句退出循环
        Loop
        MsgBox“循环次数是”&i&“;汇总结果是”&s '显示循环次数以及汇总结果
        End Sub
        提示
        在“代码”窗口边界标识条上鼠标单击可以直接创建断点。将插入点光标放置到程序中后,按F9键可以在该语句处添加断点,按Ctrl+Shift+F9键或选择“调试”|“清除断点”命令可以清除创建的断点。
        2、选择“视图”|“本地窗口”命令打开“本地窗口”对话框,按F8键逐语句执行程序。在运行到断点处时,“本地窗口”中将显示程序中表达式的当前值和变量类型,如图3所示。
       

        图3 程序调试时“本地窗口”显示的内容

        提示
        “本地窗口”只有在中断模式下才能显示相应的内容,其只能显示当前过程中变量或对象的值,当程序从一个过程转到另一个过程时,其显示的内容也会相应发生改变。在“本地窗口”中,单击对象名称左侧的 按钮可展开或收起对象的属性和成员列表。
        3、选择“视图”|“监视窗口”命令打开“监视窗口”对话框,选择“调试”|“添加监视”命令打开“添加监视”对话框,在“表达式”文本框中输入需要监视的条件,选择“当监视值为真时中断”单选按钮,单击“确定”按钮关闭对话框,如图4所示。再次打开“添加监视”对话框,在“表达式”文本框中输入变量名,选择“监视表达式”单选按钮,单击“确定”按钮关闭对话框,如图5所示。按F5键运行程序,程序将在满足条件(即i=50)时进入中断模式,“代码”窗口中指示出程序当前运行语句,同时在“本地窗口”中将可以看到监视变量的值,如图6所示。
       

        图4 添加监视条件

       

        图5 添加第二个监视条件

       

        图6 “监视窗口”中显示变量的变化

        提示
        如果需要编辑已有的监视条件,可以在“监视窗口”中选择某个监视条件后选择“调试”|“编辑监视”命令,打开“编辑监视”对话框对监视条件进行编辑修改。在“监视窗口”中选择监视条件后,按Delete键可以将其删除。
        4、选择“视图”|“立即窗口”命令打开“立即窗口”对话框,在代码中添加Debug.Print s和Debug.Print i语句。按F5键运行程序,“立即窗口”中将显示变量s和变量i的运行结果,如图7所示。
       

        图7 “立即窗口”中显示两个变量的值

        提示
        Debug是代码调试的一个重要工具,使用Debug对象的Print方法能使程序员在不暂停程序的情况下监控变量执行过程中的变化。Print方法在“立即窗口”中显示文本,Print方法显示的文本将不会在程序运行时看到,只能在“立即窗口”中显示。
        5、在“代码”窗口中为程序添加断点,运行程序后,在“立即窗口”中输入"?i"后按Enter键,“立即窗口”中将显示程序中断时变量i的值;输入"?s"后按Enter键,“立即窗口”中显示变量s的当前值,如图8所示。
       

        图8 在“立即窗口”中显示变量的值

        提示
        “立即窗口”能够显示当前语境中变量或表达式的值,值可以通过Print方法或问号“?”来显示。这里要注意,“立即窗口”输出结果最多只有200行,超过200行则只显示最后200行的内容。
               
                               
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-3 13:07 , Processed in 0.178360 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表