0

我试图寻找这个问题的答案,但无处可去。所以我明白如果我在子/函数之外声明一个变量,那么该模块中的所有子/函数都可以访问它。其他模块呢?我必须申报吗?或者我可以在不声明的情况下使用它吗?

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

Dim objFSO As FileSystemObject
Dim objTF As TextStream

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

谢谢!!

4

1 回答 1

3

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

Public objFSO As FileSystemObject
Public objTF As TextStream

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

编辑:

在这个问题的接受答案中有一个很好的解释 vba 变量范围。

于 2013-02-04T15:10:49.267 回答