VBA程序的调试:设置断点、单步跟踪、设置监视窗

  Acces的VBE编程环境提供了完整的一套调试工具和调试方法。熟练掌握好这些调试工具和调试方法的使用,可以快速、准确地找到问题所在,不断修改,加以完善。
  一、“断点”概念
  所谓“断点”就是在过程的某个特定语句上设置一个位置点以中断程序的执行。“断点”的设置和使用贯穿在程序调试运行的整个过程。
  “断点”设置和取消有4种方法:
  (1)选择语句行,单击“调试”工具栏中的“切换断点”可以设置和取消“断点”。
  (2)选择语句行,单击“调试”菜单中的“切换断点”项可以设置和取消“断点”。
  (3)选择语句行,按下键盘“F9”键可以设置和取消“断点”。
  (4)选择语句行,鼠标光标移至行首点击可以设置和取消“断点”。
  在VBE环境里,设置好的“断点”行是以“酱色”亮红显示,如图8.25所示。

  二、调试工具的使用
  VBE环境中,右键点击菜单空白位置,弹出快捷菜单,选中“调试”选项使其前边“?”出现,这时就会打开“调试”工具栏.如图8.24所示。

  调试工具栏中主要按钮功能说明见表8.11所示。

  调试工具一般是与“断点”配合使用进行各种调试操作。下面简要介绍“调试”工具栏上的一些主要调试工具的用法。
  1.中断工具钮
  用于暂时中断程序运行,进行分析。此时,在程序中序中断位置会产生一个“黄色”亮杠,如图8.25所示。
  2.本地窗口工具钮
  用于打开“本地窗口”窗口,如图8.26所示。其内部自动显示出所有在当前过程中的变量声明及变量值,从中可以观察各种数据信息。

  本地窗口打开后,列表中的第一项内容是一个特殊的模块变量。对于类模块,定义为Me。Me是对当前模块定义的当前类实例的引用。由于它是对象引用,因而可以展开显示当前实例的全部属性和数据成员。
  实际上,Me类模块变狱还广泛用于VBA程序设计中,它不需要专门定义,可以直接使用。一般编写类模块时,对当前模块的实例引用就可以使用Me关键字。
  3.立即窗口工具钮
  用于打开“立即窗口”窗口,如图8.27所示。在中断模式下,立即窗口中可以安排一些调试语句,而这些语句是根据显示在立即窗口区域的内容或范围来执行的。如果输入Print variablename,则输出的就是局域变量的值。

  4.监视窗口工具钮
  用于打开“监视窗口,窗口,如图8.28所示。在中断模式下,右键点击监视窗口区域会弹出如图所示的快捷菜单,选择“编辑监视…”或“添加监视…”项,则打开“编辑(或添加)窗口”,在表达式位置进行监视表达式的修改或添加,见图8.29所示,选择“删除监视…”项则会删除存在的监视表达式。
  通过在监视窗口增添监视表达式的方法,程序可以动态了解一些变量或表达式的值的变化
  情况,进而对代码的正确与否有清楚的判断。
  5.快速监视工具钮
  在中断模式下,先在程序代码区选定某个变量或表达式,然后点击“快速监视”工具钮,则打开“快速监视”窗口,如图8.30所示,从中可以快速观察到该变量或表达式的当前值,达到了快速监视的效果。如果需要,还可以点击“添加”按钮,将该变量或表达式添加到随后打开的“监视窗口”窗口中,以做进一步分析。

出处:http://www.educity.cn/ncre/ncrefx/201011301007201217.htm

VBA程序的调试的更多相关文章

  1. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  2. MATLAB调用C程序、调试和LDPC译码

    MATLAB是一个很好用的工具.利用MATLAB脚本进行科学计算也特别方便快捷.但是代码存在较多循环时,MATLAB运行速度极慢.如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行 ...

  3. [转] python程序的调试方法

    qi09 原文 python程序的调试方法 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python de ...

  4. Delphi应用程序的调试(十)调试器选项(在IDE中不要使用异常)

    可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...

  5. 无法在web服务器上启动调试,服务器不支持对ASP.NET 或ATL Server应用程序进行调试。

    无法在web服务器上启动调试,服务器不支持对ASP.NET 或ATL Server应用程序进行调试. a>.DCOM配置里的属性灰色不可用的解决方法,   1>.管理工具->组件服务 ...

  6. 【经验随笔】Java程序远程调试定位特定运行环境上出现的问题

    Java后台程序远程调试 第一步:在JVM的启动参数中增加-Xdebug -Xrunjdwp:transport=dt_socket,address=6688,server=y,suspend=n 第 ...

  7. Civil 3D 2017本地化中VBA程序移植到2018版中

    中国本地化包简直就是一块鸡肋, 但对于某些朋友来说还真离不了: 可惜中国本地化包的推出一直滞后, 在最新版软件出来后1年多, 本地化还不一定能够出来, 即使出来了, 也只能是购买了速博服务的用户才能得 ...

  8. Delphi应用程序的调试(十)调试器选项

    可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...

  9. Delphi应用程序的调试(五)其他调试工具

    Delphi应用程序的调试(五)其他调试工具 Delphi7中提供了一些附加调试工具来帮助用户检查程序错误.从性能上讲,其中一些工具属于高级调试工具.尽管高级调试工具不像其他工具那样常用,但对于经验丰 ...

随机推荐

  1. Spring boot + jdbc学习笔记

    pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...

  2. Win10易升是什么?如何彻底关闭Windows10易升?

    很多朋友反馈在使用电脑的时候,突然弹出一个微软Windows10易升的界面,那么Win10易升是什么,怎么样才可以彻底关闭Win10易升呢? win10易升是什么 1.易升是微软官方发布的升级助理或者 ...

  3. Maven 的41种骨架功能介绍

    1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)  2: internal -> appfu ...

  4. ftp禁止切换回上级目录

    打开并编辑/etc/vsd/vsd.conf # vi /etc/vsd/vsftpd.conf 取消如下行注释 chroot_list_enable=YES 保存并重启vsftpd # /etc/i ...

  5. Word Search, 在矩阵中寻找字符串,回溯算法

    问题描述: Given a 2D board and a word, find if the word exists in the grid. The word can be constructed ...

  6. Search in Rotated Sorted Array, 查找反转有序序列。利用二分查找的思想。反转序列。

    问题描述:一个有序序列经过反转,得到一个新的序列,查找新序列的某个元素.12345->45123. 算法思想:利用二分查找的思想,都是把要找的目标元素限制在一个小范围的有序序列中.这个题和二分查 ...

  7. Permutations,全排列

    问题描述:给定一个数组,数字中数字不重复,求所有全排列. 算法分析:可以用交换递归法,也可以用插入法. 递归法:例如,123,先把1和1交换,然后递归全排列2和3,然后再把1和1换回来.1和2交换,全 ...

  8. BZOJ 3698 XWW的难题:有上下界的最大流

    传送门 题意 给你一个 $ n*n $ 的正实数矩阵 $ A $ ,满足XWW性. 称一个 $ n*n $ 的矩阵满足XWW性当且仅当: $ A[n][n] = 0 $ 矩阵中每行的最后一个元素等于该 ...

  9. 多种方式实现滑动p91--105

    1.layout方法 2.offsetLeftAndRight()与offsetTopAndBottom()方法 3.LayoutParams(前提是要有父布局,根据父布局的类型决定LayoutPar ...

  10. react-router-dom: 重定向默认路由

    <appLayout> <Switch> <Route path='/' exact render={()=> ( <Redirect to={this.ge ...