VBA 编辑器如何调试代码?

在实际开发过程中,我们无法一次性写对所有代码,出错是正常现象,需要反复检查修改。

使用 Excel 编辑器提供的代码调试功能,可以更快定位错误来源,提高开发效率。

VBA 编辑器包含多种调试方法,他们可以在工具栏【调试】菜单中找到。本篇介绍其中常用的调试功能。

 

1.运行代码 – F5

此功能虽然不在调试菜单里,但是它是最常用的调试方法。很多时候,我们只需要快速运行某一个过程,查看其结果。

F5 快捷键就是运行过程或函数的快速方法。把鼠标光标移动到想要运行的过程或函数内部,按 F5 键即可。

2.按行运行代码: F8

F8 快捷键可以从头按行运行代码,每次按 F8 键,就运行一行代码,然后暂停。

此方法的好处是可以一行一行运行代码,观察每一行代码运行结果,精确找到问题所在。

 

3.跳过子过程运行:SHIFT + F8

使用 F8 快捷键按行运行代码时,一个过程调用另外一个子过程时,子过程内部也会按行运行代码。

如果想跳过子过程中按行运行代码,可以使用 SHIFT + F8 快捷键。这样可以在父过程按行运行代码,子过程一次性运行所有代码,回到父过程继续按行运行。

4.跳出子过程:CTRL + SHIFT + F8

在子过程按行运行代码时,可以使用 CTRL + SHIFT + F8 快捷键一次性运行子过程余下所有行代码,跳出到父过程。

5.运行到光标位置:CTRL + F8

使用 CTRL + F8 快捷键,可以一次性运行到光标所在位置行后暂停。

当想要检查某一行代码有无问题,又确定改行以上代码没问题时,可以使用此快捷键快速运行代码到当前行。

6.设置断点:F9

断点是代码暂停运行的一行代码。设有断点的代码行,背景颜色突出显示,默认是深红色。

设置/取消断点有两种方法:

  1. 光标放置在一行代码内,按 F9 快捷键。再次按 F9 ,取消断点。
  2. 鼠标点击代码行左侧灰色背景处。再次鼠标点击,取消断点。

断点的数量没有限制,代码每次运行到断点处,会暂停运行。如果想一次性取消所有的断点,可以使用 CTRL + SHIFT + F9 快捷键。

7.查看变量的值

使用按行运行方法或断点设置,代码都会进入到暂停期间。暂停时,下一步运行的代码行背景变为黄色,等待执行。这时把鼠标悬停在任意一变量的上面,可以看到该变量的当前值。这有助于掌握程序运行时,变量的变化情况,快速找到问题。

8.Debug.Print 函数查看变量的值

上面的方法使用鼠标查看变量的值,除此之外,还能在立即窗口,使用 Debug.Print 函数打印出指定变量的值。

9.运行时改变变量的值

代码暂停期间除了查看变量的值外,还能实时改变变量的值,并且鼠标调整下一步运行的代码行。

10.监视表达式

程序运行时查看某一表达式的值,可以使用监视功能。这样查看观察表达式的值更方便。

首先,选中要观察的表达式,然后鼠标右键,弹出的菜单选择【添加监视】。

然后,出现添加监视菜单对话框,点击确定,完成添加。

最后,在编辑器右下方出现监视框。代码运行及暂停时,可以看到当前表达式的值及相关信息。

 

11.强制结束运行

通常,代码运行到 End Sub 或 End 语句时停止。如果想提前结束程序执行,可以点击工具栏【重新设置】按钮。

 

总结

代码调试的主要目的是把执行代码范围缩小到一个小的范围,快速定位问题所在。VBA 编辑器提供的调试功能可以很好地完成这一目标。使用调试功能可以做到以下工作:

  • 按行运行代码;
  • 代码运行时,查看某一变量的值;
  • 跳过或跳出子过程;
  • 设置断点,添加监视,查看某一表达式的变化;
  • 强制结束过程。
转载注明:文章转载自「懒人Excel - www.lanrenexcel.com
订阅评论
提醒
5 评论
最新
最旧 最多投票
内联反馈
查看所有评论
清风笑烟雨
5 月 前

非常好,感谢分享

wwx
1 年 前

做得很好,学了很多东西

jing
2 年 前

网站做的非常好!清晰、明了,收获很多,感谢分享。

SLW
2 年 前

想请问VBA教程还会不会更新呢, 学到了特别多, 期待能继续更新, 也期待博主能出一些题目作为练习, 加油!

Rann
3 年 前

这个很实用,谢谢分享

5
0
希望看到您的想法,请您发表评论x