如何在vba中使用显式选项语句?

关键点

  • Explicit 选项要求您声明所有变量
  • 这是一个可以在模块开头使用的声明。
  • 您可以手动输入或从选项中启用它。
  • 您只能使用 Option Explicit 一次。
  • 它还可以帮助您在使用变量时识别拼写错误

什么是显式 VBA 选项

Option Explicit 是一个可以在模块开头使用的语句,强制声明所有变量。添加此语句后,VBA 将在您运行代码时显示编译错误,并突出显示代码中需要声明的变量。

vba 选项显式

当您在模块的开头添加显式选项时,VBA 在其下方添加分隔线,然后您可以开始编写过程。当您使用显式声明选项并运行过程时,VBA 会检查是否存在未声明的变量并向您显示错误消息。

 Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
vba-添加分隔线

以上是未声明变量时收到的消息。

在 VBA 中启用显式选项

要在模块中启用显式选项语句,请按照以下步骤操作。

  1. 首先,打开 Visual Basic 编辑器,然后在“工具”菜单上单击“选项”。
    activate-option-explicit-in-vba
  2. 之后,在选项中,转到编辑器选项卡并选中“需要变量声明”框。
    editor-tab-and-tick-mark
  3. 最后,单击“确定”。
  4. 执行此操作后,每次添加新模块时,VBA 都会添加一个显式选项。

但它不会将此声明添加到您现有的模块中,因此您必须手动将它们一一添加到每个现有模块中。

如何手动添加呢?

正如我所提到的,Option Explicit 语句必须位于第一个模块过程(Sub 或 Function)之前。因此,您需要将此声明添加到第一个过程(通用声明区域)上方,并确保仅添加一次。

一般声明区

如果将其添加到过程内部或两个过程之间,当您尝试执行任何模块代码时,VBA 将显示错误。

vba 将向您显示错误

示例(为什么使用 Option Explicit 语句是一个好习惯)

让我向您展示一个示例,让您了解为什么强烈建议使用 Option Explicit 语句。看下面的代码。

 Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

在此代码中,我将变量“myText”声明为字符串,然后设置该变量的值。最后,我使用了一个消息框来显示变量的值,但如果仔细观察,我会将该变量拼写为“MyTxt”而不是“myText”。

声明变量

现在,当我运行此代码时,它会显示一个空的消息框

空消息框

我需要您 2 分钟的时间来帮助您了解这里的真正问题。当我输入错误的变量名称时,VBA 将其视为单独的变量,并且由于我不使用显式选项语句,因此它不会显示错误。

变量名拼写错误

这就是消息框使用第二个(输入错误的)变量的原因,该变量没有分配任何值。现在想一想;如果您编写很长的代码并且不使用显式选项语句,则在重新阅读所有代码之前将很难跟踪此错误。

但是,当显式声明选项打开时,当我运行此代码时,会出现错误。

使用选项显式
 Option Explicit Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注