总是使用显式选项
在 VBA 编辑器窗口中,从工具菜单中选择选项:

然后在编辑器选项卡中,确保选中需要变量声明:

选择此选项将自动将 Option Explicit 置于每个 VBA 模块的顶部。
小注意: 这对于目前尚未打开的模块,类模块等是正确的。因此,如果你在激活需求变量声明选项之前已经查看了例如
Sheet1的代码,则不会添加Option Explicit!
Option Explicit 要求在使用前必须定义每个变量,例如使用 Dim 语句。如果没有启用 Option Explicit,VBA 编译器将假定任何未识别的单词为 Variant 类型的新变量,从而导致与打印错误相关的极难发现的错误。启用 Option Explicit 后,任何无法识别的单词都会导致抛出编译错误,表示有问题的行。
示例:
如果你运行以下代码:
Sub Test()
my_variable = 12
MsgBox "My Variable is : " & myvariable
End Sub
你将收到以下消息:

你通过编写 myvariable 而不是 my_variable 来表示错误,然后消息框显示一个空变量。如果你使用 Option Explicit,则无法执行此错误,因为你将收到指示问题的编译错误消息。

现在,如果你添加正确的声明:
Sub Test()
Dim my_variable As Integer
my_variable = 12
MsgBox "My Variable is : " & myvariable
End Sub
你将获得一条错误消息,指出 myvariable 的错误:

关于 Option Explicit 和 Arrays ( 声明动态数组 )的注意事项 :
你可以使用 ReDim 语句在过程中隐式声明数组。
使用 ReDim 语句时,请注意不要拼错数组的名称
即使模块中包含 Option Explicit 语句,也会创建一个新数组
Dimarr()as Long
ReDimar()'creates new array "ar" - "ReDimar()" acts like "Dimar()"