在vba中使用类而不是全局variables

Excel的VBA不会让你使用数组的全局variables,所以我想用一个类来跟踪我需要的variables。 我想创build一个子variables,并从另一个调用它,但我不知道该怎么做。

Sub Test3() Dim mc As cVars Set mc = New cVars Dim ex() As Double ReDim ex(1 To 5) For i = 1 To 5 ex(i) = i Next i mc.Arr = ex Call Test4 End Sub Sub Test4() Dim out() As Double ReDim out(1 To 5) out = mc.Arr MsgBox (out(2)) End Sub 

 Option Explicit Private pArr() As Double Public Property Get Arr() As Double() Arr = pArr() End Property Public Property Let Arr(p() As Double) pArr = p() End Property 

错误出现在Test4(),因为没有启动mc,我尝试启动它,但它不是同一类(我相信)

为什么不把Sub Test4()改成一个函数,而是调用一个variablesmc:

 Function Test4(mc As cVars) Dim out() As Double ReDim out(1 To 5) out. mc.Arr MsgBox(out(2)) End Function 

这可能工作。