Excel Macros 简明教程

Excel Macros - Debugging a Code

您已经了解到宏存储为 Excel 中的 VBA 代码。您还了解到可以在 VBA 编辑器中直接编写代码来创建宏。但是,与任何代码一样,即使是宏代码也可能存在缺陷,而且宏可能无法按预期运行。

这需要检查代码以查找缺陷并修复它们。在软件开发中,用于这种活动的术语是调试。

VBA Debugging

VBA 编辑器允许您暂停代码的执行并执行任何必需的调试任务。以下是您可以执行的一些调试任务。

  1. Stepping Through Code

  2. Using Breakpoints

  3. 在代码中向前或向后移动

  4. 不逐行执行代码

  5. 在逐行执行代码时查询任何内容

  6. Halting the Execution

这些只是您可能在 VBA 调试环境中执行的某些任务。

Stepping Through the Code

对于调试,您首先要做的就是逐步执行代码。如果您知道哪一部分代码可能导致缺陷,则可以跳到代码的那一行。否则,您可以逐行执行代码,在代码中向前或向后移动。

您可以从工作簿中的宏对话框或 VBA 编辑器本身进入代码。

Stepping into the code from the workbook

若要从工作簿进入代码,请执行以下操作 −

  1. 单击功能区的“视图”选项卡。

  2. Click Macros.

  3. 从下拉列表中选择查看宏。

出现宏对话框。

  1. Click the macro name.

  2. 单击逐步执行按钮。

step into

VBA 编辑器打开,宏代码出现在代码窗口中。宏代码中的第一行将以黄色突出显示。

macro code

Stepping into the code from the VBA editor

若要从 VBA 编辑器进入代码,请执行以下操作 −

  1. 在功能区上单击“开发工具”选项卡。

  2. 单击 Visual Basic。VBA 编辑器打开。

  3. 单击包含宏代码的模块。

宏代码出现在代码窗口中。

stepping
  1. 在功能区中,单击“调试”选项卡。

  2. 从下拉列表中选择“ Step into ”。

dropdown

宏代码中的第一行将被高亮。代码处于调试模式,并且“调试”下拉列表中的选项将变为活动状态。

active

Backing Up or Moving Forward in the Code

您可以通过选择“单步执行”或“步出”在代码中向前或向后移动。

Not Stepping Through Each Line of Code

如果您识别到需要讨论的代码的潜在部分,则可以选择“运行到光标”以避免逐行执行代码。

Using Breakpoints

或者,您可以在代码的特定行设置断点并执行代码,在每个断点处观察结果。您可以根据需要切换断点并清除所有断点。

Using Watch

在调试过程中,您可以添加一个监视器来计算一个表达式,并在变量达到特定值时停止执行。这意味着您配置一个监视器表达式,它将被监视,直到为真,然后宏将停止并让您进入断点模式。VBA 为您提供了多种监视器类型以供选择,以便实现您的目标。

Halting the Execution

在调试过程中,在任何时间点,如果您发现了问题所在,您可以停止执行以进一步破译。

如果您是一位经验丰富的开发人员,则调试术语对您来说并不陌生,并且 VBA 编辑器调试选项使您的生活变得轻松。即使没有经验,如果您学习过 VBA 并理解代码,掌握这项技能也不会花费太多时间。