今天发现VBA一个神奇的功能,即单步调试及对象监视功能,对于难理解抽象语句的我来说,简直发现了新大陆。在这上篇简书中,提到本地窗口、立即窗口和监视窗口【https://www.jianshu.com/p/afd4974c975b 】,在本文展开详细解读:
VBA程序调试·原则及工具
调试目的:程序投入运行前,修正语法错误和逻辑错误,保证程序的正确性。
根据测试时所发现的错误信息和利用调试工具追踪的提示信息,两者相互结合综合判断 错误发生原因和位置。
调试原则:
1、根据代码逻辑,大致判断错误可能出现的位置;
2、借助调试工具,理清程序数据流转逻辑;根据调试的提示信息,做出正确的处理。
3、反思错误本身,是否存在设计偏差。
VBA调试工具:
- Debug.print
- 设置断点
- 单步调试
- 添加监视及监视窗口
- 本地窗口
- 立即窗口
- 单步调试跳转
编写程序后,点击运行后报错,程序中断:VBA程序调试·实际操作
-
Debug.print 打印错误信息
-
设置断点
点击运行,程序将运行至断点处停止,方便排查错误区域。
设置断点两种方法:
1、点击需要断点行的前面,行变深红色;
2、调试菜单 -> 选择切换断点(光标停在断点行,按快捷键F9)
单步调试
逐条运行程序,便于查看变量值、添加语句或分析bug。
设置方法:光标停在代码处,点击调试菜单 -> 选择逐语句 (快捷键F9)-
添加监视
可以选择对象进行监视,在监视窗口可查看对象值。
设置方法:光标变量或对象处,右键 或点击调试菜单 -> 选择**
添加监视**
-
本地窗口和监视窗口
通过逐行编译代码,可在立即窗口和监视窗口查看值的内容,发现错误位置及原因。
立即窗口
1、打印信息,在窗口输入Debug.print 表达式... 可显示表达式的值;
2、可以测试过程,在窗口中输入过程名称和实参以便调用;
3、可以检查错误号,如Error 11 (提示除数为0)单步强制跳转
用途:部分时候,需要看下else的运行结果,又懒得去调if的判断值。
用法:当运行到断点或者单步时,鼠标安装黄色那一行,拖动你要运行的位置。
当然以上错误可通过判断出来,不必设置断点,仅为效果演示~冲鸭!小野s