2017-04-19 93 views
1

问题:是否有可能在VBA中隐藏了某些变量的声明?隐藏变量声明VBA

现状:

我有一个Excel文件,有很多的模块,但每当我们打开它的一些原因,该消息显示了,我尝试在一些论坛上,但没有成功找到了一些“解决方案” - >我决定一张一张地复制一张纸和一张模块,将所有东西都复制到一张新的“干净的”excel文件中。

问题:代码不运行,说变量XXX没有声明(好的...有道理),但我检查了损坏的文件,即使它没有在任何地方声明(我检查与Finder在整个项目中)有问题的代码可以运行...令人困惑!

对此有何解释?

+4

如果一个变量没有被声明但是被使用,那么它被创建的时间很晚,如果选项显式不存在,那么它是被接受的使用(虽然不是最佳实践)。旧的工作簿可能没有明确的选项,而新的工作簿可以。 – Zerk

+0

@ Zerk:是的。我完全模糊了这个细节。你是对的 !我只是检查了谢谢 – Seb

回答

1

最坏的情况下,快速和肮脏的情况 - 从每个模块,类,工作簿和工作表中删除Option Explicit。它确保所有变量都被声明。例如,尝试运行以下代码:

Option Explicit 

Sub TestMe() 
    k = 5 
    Debug.Print k 

End Sub 

您不能。然后在Sub TestMe()之后添加dim k as long。或者删除Option Explicit。现在你可以运行它。

缓慢而干净的解决方案:检查所有变量,当您尝试运行代码并声明它们时突出显示。你的代码运行得更快。

+0

缓慢而干净的解决方案是解决方案...您的答案是错误的方法? – whytheq

+0

好吧,如果你有50,000行代码并在30分钟内完成最后期限,你可能冒一点风险。 @whytheq – Vityata

+0

是的,它只是更好地添加它。它可以防止拼写错误被忽视。我前一段时间已经设置了_Require变量Declaration_选项,但这不是我完成的原因。 – Seb