Excel:使工作簿中的所有模型共享所有全局变量



我试着寻找这个问题的答案,但没有找到。所以我知道,如果我在子/函数之外声明一个变量,那么该模块中的所有子/函数都可以访问它。其他模块呢?我必须申报吗?或者我可以不用声明就使用它吗?

例如,我有一个用于登录多个模块的textstream对象。基本上,我想做的是初始化它们一次,我的模块中的所有函数都可以使用相同的objTF对象写入日志文件。这些对象在commandbutton_click事件中初始化。但我该在哪里申报呢?

Dim objFSO As FileSystemObject
Dim objTF As TextStream

我必须把它们放在所有模块的开头吗?或者只有一个模块就足够了?正确的方法是什么?

谢谢!!

尝试这个(在子或函数之外):

Public objFSO As FileSystemObject
Public objTF As TextStream

应该全局声明它们,以便可以从项目中的任何模块访问它们。

编辑:

在这个问题的公认答案中,对vba变量范围有一个很好的解释。

最新更新