版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
我是纯小白自学的,很多科班出身的同学可能不会遇到我这样的小白问题,但可能我的小白思路,对其他后来的一些小白有用,所以总结一下~
1 为什么要调试
因为你的程序会出错啊有的出错会跳出报错有的出错不会跳出报错,但会返回错误值
2 怎么调试
1 遇到报错了再调试,大家最普遍遇到的一种2 设置断点调试,这个可以逐步分割程序,查看每部分的问题3 用立即窗口+debug.print 这样的脚手架来看4 用本地窗口看变量的值---但如果想在报错前停下来,就需要用stop等语句进行配合。因为程序正确将瞬间执行完毕!本地窗口马上清空
3 几个调试的基本工具
立即窗口,最大的作用就是所见即所得。局限性:显示的是执行结束后的全部结果,一般需要配合 debug.print等使用本地窗口:显示变量的值。但是一般需要配合 stop 语句断点前察看监视窗口:可以自定义想监视的变量,需要配合 能中断程序的方法一起用。

3.1 立即窗口

立即窗口代码和 模块代码,变量,独立,没有任何关系可以当个临时小黑板 计算用顺便说一下立即窗口(按Ctrl+G或菜单选择),除了显示debug.print的执行结果外,在调试期间在立即窗口还可以直接输入语句,按回车后显示语句的执行结果,也可以用“?变量名”来显示变量的值(虽然鼠标移到变量上方时也会显示变量值,但如果值太长,是显示不全的)。例如,如果有个变量是mystr,可以在立即窗口输入下面例句:? mystr? left(mystr,5)

3.2 本地窗口

平时运行时,会显示内容
代码运行结束后 ,就会停止
那如果想运行时,也显示本地窗口呢,只需要在结束前,加入一句 stop即可

3.3 监视窗口

对需要监视的变量,点右键 “ 添加监视 ”

4 如何调试VBA程序

逐句执行,按f8 逐步执行,去调试 F5 立刻执行 F8 分步骤执行设置断点加stop语句+ 查看本地窗口,监视窗口等

4.1 stop语句

语句里写stop 可以方便的查看,本地窗口里的 跟踪的变量的值stop 停止,查看内存中的断点,否则看不到本地窗口,执行过程中才显示执行完成了就清除本地窗口---要加断点+监视窗口才行

4.2 断点

断点,代码不继续往下执行的点断点,停在什么地方查看这个地方是否有错,一般是这,或者是这个的前一条语句或变量的问题断点和取消断点

4.3 错误捕捉

vba中提供了3个声明来设置错误陷阱.On Error GoTo line '如果错误产生, 则跳转到某行,或者标号执行On Error Resume Next '如果错误产生, 则继续下一条语句On Error GoTo 0 '清除当前设置的错误陷阱一个声明来处理陷阱.

4.4 断言

除了debug.print,还有一个debug.assert用于指定条件不成立时中断程序执行(和断点一样暂停)类似在监视窗口添加一个监视条件(监视条件成立时暂停),这在大的循环中找到指定的点很有用,例如:debug.assert i