VBA。访问Variant的数组元素。数组是类的属性

时间:2018-08-20 08:12:09

标签: vba excel-vba

我有一个带有ArrSignalCabel变量的类。在这个变量中,我编写了一个对象数组。 属性在我的类的底部只会返回一个数组。而且我无权访问array元素。

 Option Explicit
Private ArrSignalCabel As Variant

Property Let ArrSignalCab(ByVal ArrValue As Variant)
 ArrSignalCabel = ArrValue
End Property

Property Get ArrSignalCab() As Variant
 ArrSignalCab = ArrSignalCabel
End Property

Public Property Get ArrSignalCabIn(index As Integer) As Variant ' not work
 ArrSignalCabIn(index) = ArrSignalCabel(index)
End Property

////////////////

NameObjTM2 = TempPanel.ArrCabelPan(i).ArrSignalCabIn(0) ' not work
NameObjTM3 = TempPanel.ArrCabelPan(i).ArrSignalCab      ' work
NameObjTM4=  NameObjTM3(0).NameSig                      ' work

PS: TempPanel-一个包含对象数组(ArrCabelPan)的对象。 ArrCabelPan-类结构与所描述的相同。

2 个答案:

答案 0 :(得分:0)

您尝试过ArrSignalCabIn = ArrSignalCabel(index)吗?

属性名称应与您在Property Get中声明的名称相匹配,例如Function

答案 1 :(得分:0)

我找到答案

Public Property Get ArrSignalCabIn(Index As Integer) As Variant
If (ArrSignalCabel(Index) Is Nothing) Then Set ArrSignalCabel(Index) = New Signal
Set ArrSignalCabIn = ArrSignalCabel(Index)
End Property

感谢那些帮助过的人