Excel 2016 Option Explicit无法检测未声明的变量

时间:2018-12-18 10:50:45

标签: excel vba excel-2016

所有工作表和所有模块的顶部都有明确的Option。

需要变量声明被选中

我只有两部分代码,每个部分都在自己的模块中。 但是 Option Explicit 被忽略。

作为测试,我输入了新的代码行

sausage = 3 

它编译没有错误。

我已经使用以下代码检查了工作簿中所有可能的代码部分。除了一个以外,所有其他程序均无法编译。该模块中的整个代码为:

Option Explicit

Sub SelectPath_Click()
s = 3
End Sub

使用调试->编译VBA项目不会产生任何错误,并且再次执行此操作的选项将随后显示为灰色。

该代码是单击按钮时可以猜到的代码。我认为该按钮是Form控件,而不是active-x,但我不知道如何查询该按钮以找出其类型。

没有活动的加载项。

同时,我已经将sub从Module移到了按钮所在的工作表上,嘿,保存。编译失败。

现在的问题是,工作簿的这一部分如何忽略Option Explicit?我在做错什么吗?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案,方法是将代码从“模块”移到调用它的按钮所在的工作表上。

每个其他代码区域都无法正确地使用duff代码编译(即使其他模块中具有功能)。

我不得不将代码重新分配给按钮,但现在一切正常。

但是我不知道为什么它应该以前失败过。

感谢您的光临。

答案 1 :(得分:0)

尝试一下。听起来很愚蠢,但实际上它从Excel 2003到2016年(即使是今天早上)多次为我修复了这种情况。如果失败,您只需花费30秒的时间即可尝试这种公认的怪异解决方法。

将光标置于显式“ t”之后
输入一个空格(有一个奇怪的技术原因;请相信我)
按下Enter
按下左箭头键
点击删除键

现在,编译器应该执行您期望的操作。

这是在万事俱备的情况下,您知道Option Explicit根本无法正常工作,这会导致未声明变量的编译错误。