Excel:做一个工作簿中的所有模型共享所有的全局variables?

我试图寻找这个问题的答案,但不去哪里。 所以我明白,如果我声明一个variables之外的子/function,它可以访问该模块中的所有子/function。 其他模块呢? 我必须申报吗? 或者我可以使用它而不用声明它?

例如,我有一个用于login多个模块的文本stream对象。 基本上我想要做的是初始化他们一次,我的模块中的所有function可以使用相同的objTF对象写入日志文件。 这些对象在commandbutton_click事件中被初始化。 但我在哪里申报?

Dim objFSO As FileSystemObject Dim objTF As TextStream 

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

谢谢!!

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

 Public objFSO As FileSystemObject Public objTF As TextStream 

应该在全球范围内声明它们,以便可以从项目中的任何模块访问它们。

编辑:

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