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

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

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

VBA 编辑器如何调试代码?

戳我学习>>知识兔精品课《Office2019零基础入门精通全套大师级课程》

 

1.运行代码 – F5

知识兔

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

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

2.按行运行代码: F8

知识兔

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

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

VBA 编辑器如何调试代码?

 

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

知识兔

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

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

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

知识兔

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

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

知识兔

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

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

6.设置断点:F9

知识兔

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

VBA 编辑器如何调试代码?

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

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

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

7.查看变量的值

知识兔

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

VBA 编辑器如何调试代码?

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

知识兔

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

VBA 编辑器如何调试代码?

9.运行时改变变量的值

知识兔

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

VBA 编辑器如何调试代码?

10.监视表达式

知识兔

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

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

VBA 编辑器如何调试代码?

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

VBA 编辑器如何调试代码?

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

VBA 编辑器如何调试代码?

 

11.强制结束运行

知识兔

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

VBA 编辑器如何调试代码?

 

总结

知识兔

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

  • 按行运行代码;
  • 代码运行时,查看某一变量的值;
  • 跳过或跳出子过程;
  • 设置断点,添加监视,查看某一表达式的变化;
  • 强制结束过程。