![]() |
1
11
调试VBA代码本页介绍调试VBA代码的方法。 介绍调试程序是软件开发中最重要的步骤之一。了解VBA的调试工具可以使调试更容易、更高效。本页介绍了在测试和调试应用程序时可以使用的几种VBA内置调试工具。 单步执行代码调试代码的第一种方法之一是一次一行地遍历代码。要单步执行代码,请将光标放在要分析的第一行代码上,然后按 F8 或选择 踏入 在 调试 菜单要执行的下一行代码将以黄色背景和黑色字体显示。请注意,突出显示的代码行尚未执行——这是要执行的下一行。 如果代码调用另一个过程,请使用 F8 将导致执行以逐行顺序进入被调用的过程。如果要执行调用的过程而不单步执行,请按 转移 + F8 。这将执行被调用的过程,然后在调用过程后暂停在代码行上。如果您已经在逐步完成某个过程,可以按 Ctrl键 + F8 逐行恢复代码执行。在逐步模式或断点(见下文)暂停时,您可以按 F5级 或 持续 从 跑 菜单,使VBA运行完成或直到遇到pause语句。 无论何时在逐步模式下暂停,都可以从 即时窗口 。 断点和停止命令断点是放置在代码行上的标记,它使执行在执行该行之前立即暂停。您可以将光标放在有问题的代码行上,然后按向代码行添加断点 F9层 ,选择 切换断点 在 调试 菜单,或单击代码行旁边的左边距。设置断点后,该行以砖红色背景和白色字体显示。运行代码时,执行将在带有断点的代码行之前立即暂停,并以黄色背景和黑色字体显示。请注意,黄色的那一行尚未执行,这是要运行的下一行代码。
当代码在断点处暂停时,您可以在即时窗口中发出命令来更改或查询变量的值。要查看变量的内容,请输入?字符后跟变量名称,然后按
进来
。您可以通过输入
如果即时窗口不可见(通常位于VBA编辑器屏幕的底部),请按 Ctrl键 + G 或选择 即时窗口 从 看法 菜单以使窗口可见。
要删除断点,请将光标放在代码行上,然后按
F9层
。您可以通过选择清除所有断点
清除所有断点
从
调试
菜单或按
Ctrl键
+
转移
+
F9层
.VBA还提供
完成代码调试后,请确保返回并清除所有断点(选择 清除所有断点 从 调试 功能表或按键 Ctrl键 + 转移 + F9层 )并确保删除或注释掉所有停止语句。 当您在断点或分步模式下暂停时,可以更改要执行的下一行,可以在当前行之前重新运行一段代码,也可以在该行之后跳过语句。右键单击要继续执行的行,然后右键单击并选择 设置下一条语句 或选择 设置下一条语句 从 跑 菜单将在选定的代码行继续执行。 Debug命令
VBA提供了一个调试对象,该对象具有两个属性,即打印和断言,您可以使用它们来显示变量的值和控制程序流。
通过用逗号分隔变量,可以在即时窗口中同时显示多个变量。例如
这个
这将在
请确保删除或注释掉
“本地人”窗口局部变量窗口允许您在单步执行过程时查看过程中所有变量的值。要显示“局部变量”窗口,请选择 本地窗口 从 看法 菜单使用“局部变量”窗口比从即时窗口检查值更容易显示变量值。对于简单变量类型(例如长变量和字符串变量),该值显示在一行上。对于复杂类型或对象(例如,范围变量),其属性显示在可折叠的树状结构中。 监视窗口“监视”窗口显示所有有效的监视。您可以通过选择 监视窗口 从 看法 菜单监视是当表达式为True或被监视的变量更改值时,VBA暂停代码的指令。要在变量上创建监视,请打开监视窗口并在监视窗口中单击鼠标右键,然后选择 添加监视。。。 从弹出菜单或选择 添加监视。。。 从调试窗口。在“添加监视”对话框中,在“表达式”文本框中输入要监视其值的变量名称。然后选择 值更改时中断 。运行代码时,执行将在修改变量值的行后的行暂停。代码暂停时,变量的值将已更新。 要删除手表,请在手表窗口中右键单击它,然后选择 删除监视 从弹出菜单。要修改手表,请在手表窗口中右键单击它,然后选择 编辑监视 从弹出菜单。 调用堆栈
调用堆栈是由VBA维护的数据结构,用于跟踪哪个过程调用了另一个过程。例如,if程序
资料来源:Pearson软件咨询公司的Chip Pearson: http://www.cpearson.com/Excel/DebuggingVBA.aspx |
![]() |
SRobertJames · 使用printf的gdb显示 1 年前 |
|
Subin · 在vscode中运行c时出错 1 年前 |
![]() |
Community wiki · 如何调试Python内存故障? 1 年前 |
![]() |
Kai · 有什么方法可以轻松优化VSCode中的锈迹? 2 年前 |
![]() |
Chris Brandon · 如何使节点在堆栈溢出时中断? 2 年前 |