VBA 使用立即窗口 和 本地窗口 调试的一些基本方法

  • Post author:
  • Post category:其他


我是纯小白自学的,很多科班出身的同学可能不会遇到我这样的小白问题,但可能我的小白思路,对其他后来的一些小白有用,所以总结一下~

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 版权协议,转载请附上原文出处链接和本声明。