我试着寻找这个问题的答案,但没有找到。所以我知道,如果我在子/函数之外声明一个变量,那么该模块中的所有子/函数都可以访问它。其他模块呢?我必须申报吗?或者我可以不用声明就使用它吗?
例如,我有一个用于登录多个模块的textstream对象。基本上,我想做的是初始化它们一次,我的模块中的所有函数都可以使用相同的objTF对象写入日志文件。这些对象在commandbutton_click事件中初始化。但我该在哪里申报呢?
Dim objFSO As FileSystemObject
Dim objTF As TextStream
我必须把它们放在所有模块的开头吗?或者只有一个模块就足够了?正确的方法是什么?
谢谢!!
尝试这个(在子或函数之外):
Public objFSO As FileSystemObject
Public objTF As TextStream
应该全局声明它们,以便可以从项目中的任何模块访问它们。
编辑:
在这个问题的公认答案中,对vba变量范围有一个很好的解释。