我找不到任何文档来支持我的发现,但这就是我在这里的原因。在我的模块中,我声明了多个全局数组本身并不是一个问题,但似乎正在发生的是如果我尝试在一个语句中声明多个数组,只有第一个被初始化。任何人都可以证实这是行为和/或指向我的文档,支持这?Excel VBA全局变量
当我进入的代码,如果我找ARR1它的定义不工作陈述
Global arr1, arr2, arr3
的例子可以找到。如果我查找arr2或arr3,我会收到一条消息,指出“无法识别cusor下的标识符”。如果我将arr3移动到一条新线并如此剥离:
Global arr1, arr2
Global arr3
现在已经认识到了。所以我不知道这是已知的行为,错误还是其他。
'全球A,B,C'是好的,所有3个应该没有问题定义,您需要扩展你的例子。您可以将'option explicit'添加到模块的顶部;这会导致VBA在您尝试使用未声明/超出范围变量时引发错误。 (它最好定义一个类型'全局a()作为字符串,b()作为字符串...') –
在这两种情况下,所有变量''arr1'',''arr2''和''arr3'' if声明你指定的方式应该工作。所有这些都是“变体”类型。如果您不明确声明任何类型,则所有变量都变为“TypeOf”变体默认值。 – Cylian
我也可以如上所述声明变量,并在相同模块和其他模块中的以下代码中查看它们的定义。我第二次由@亚历克斯推荐。使用Option Explicit。关于全局变量的一件事是,它们不能在类中声明 - 它不会被编译(但这显然不是你的问题)。 –