电子表格中所有模块中的所有全局变量是否立即声明



我正在重构一个包含多个模块的Excel电子表格。在ThisWorkbook对象中,可以找到以下代码:

Option Explicit
set ws = ActiveSheet

在执行代码的过程中,线程进入其中一个模块。在这个模块中,我们可以找到对象声明:

Global ws as Worksheet

我知道全局变量可以在所有模块中使用。这是否意味着函数声明发生在函数定义之后?还是在运行任何代码之前,应用程序中所有模块中的所有全局变量都已声明?

声明不是可执行代码,无论它们是全局的、模块的还是本地范围的(Dim语句不可执行;Dim...As New也不可执行(。所以,是的,它们被宣布为"立即"。如果加载了模块(即,如果它的任何成员在代码入口点的任何执行路径中使用(,那么它定义的所有内容都会被定义。

注意,Global关键字是过时/无用的:Global变量与任何其他Public变量都没有任何不同。

正如@BigBen在评论中提到的,全局作用域ws As Worksheet对象看起来非常非常像您想要在重构项目中消除的全局状态变量类型。

相关内容

  • 没有找到相关文章

最新更新