我想在Excel VBA中拥有一个全局数组变量,其数组大小取决于第二个全局变量。
我正在尝试这样的事情......
Public int1 As Integer
Sub foo()
int1 = '##read from ini file
Public varArray(1 To int1) As Variant
For i = 1 To int1
varArray(i)= '##read from ini file
Next i
Call SomeProcedure '##in another module where varArray is used
End Sub
现在显然这不起作用,因为必须在sub之外声明全局公式,并且当我给它们一个范围时,似乎Arrays也需要一个常量。有什么办法可以通过宣布
来实现Public varArray() As Integer
然后再给它一些元素?它似乎没有让我这样做,我没有尝试过其他任何东西......
答案 0 :(得分:1)
正如您所提到的,数组必须在sub之外声明为全局。
要确定数组大小,请在确定阵列需要的大小后,在另一个函数内部使用ReDim
命令。
Dim varArray() As Variant
Public Sub Foo()
'Determine size of array
'For example, let's say you determine you need 15 elements
ArraySize = 15 'Your variable here, instead of 15
ReDim varArray(1 To ArraySize)
'Debug Print statement to confirm array dimensions
Debug.Print LBound(varArray) & " - " & UBound(varArray)
End Sub