在实际开发过程中,我们无法一次性写对所有代码,出错是正常现象,需要反复检查修改。
使用 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
断点是代码暂停运行的一行代码。设有断点的代码行,背景颜色突出显示,默认是深红色。
设置/取消断点有两种方法:
- 光标放置在一行代码内,按
F9
快捷键。再次按F9
,取消断点。 - 鼠标点击代码行左侧灰色背景处。再次鼠标点击,取消断点。
断点的数量没有限制,代码每次运行到断点处,会暂停运行。如果想一次性取消所有的断点,可以使用 CTRL + SHIFT + F9
快捷键。
7.查看变量的值
使用按行运行方法或断点设置,代码都会进入到暂停期间。暂停时,下一步运行的代码行背景变为黄色,等待执行。这时把鼠标悬停在任意一变量的上面,可以看到该变量的当前值。这有助于掌握程序运行时,变量的变化情况,快速找到问题。
8.Debug.Print 函数查看变量的值
上面的方法使用鼠标查看变量的值,除此之外,还能在立即窗口,使用 Debug.Print
函数打印出指定变量的值。
9.运行时改变变量的值
代码暂停期间除了查看变量的值外,还能实时改变变量的值,并且鼠标调整下一步运行的代码行。
10.监视表达式
程序运行时查看某一表达式的值,可以使用监视功能。这样查看观察表达式的值更方便。
首先,选中要观察的表达式,然后鼠标右键,弹出的菜单选择【添加监视】。
然后,出现添加监视菜单对话框,点击确定,完成添加。
最后,在编辑器右下方出现监视框。代码运行及暂停时,可以看到当前表达式的值及相关信息。
11.强制结束运行
通常,代码运行到 End Sub 或 End 语句时停止。如果想提前结束程序执行,可以点击工具栏【重新设置】按钮。
总结
代码调试的主要目的是把执行代码范围缩小到一个小的范围,快速定位问题所在。VBA 编辑器提供的调试功能可以很好地完成这一目标。总结下来,使用调试功能可以做到以下工作:
- 按行运行代码;
- 代码运行时,查看某一变量的值;
- 跳过或跳出子过程;
- 设置断点,添加监视,查看某一表达式的变化;
- 强制结束过程。