我是纯小白自学的,很多科班出身的同学可能不会遇到我这样的小白问题,但可能我的小白思路,对其他后来的一些小白有用,所以总结一下~
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<126 ‘i大于等于126时暂停(注意:条件不成立时暂停)
https://www.cnblogs.com/mq0036/p/4242132.html
https://docs.microsoft.com/zh-cn/office/vba/Language/How-to/set-and-clear-a-breakpoint
http://www.360doc.com/content/17/1003/18/30583536_692032205.shtml
版权声明:本文为xuemanqianshan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。