【发布时间】:2011-09-02 16:52:51
【问题描述】:
我有一个类,其中一个成员变量是一个数组。我正在尝试将数组分配给对象,但不断收到“无法分配数组”编译错误。我也很好奇如何在对象中获取数组的 UBound。 UBound(obj.array) 无法编译。我正在使用 excel 07 vba。
'Test routine that keeps failing
Sub test()
Dim Arr(2) As String
Arr(0) = ""
Arr(1) = "Pizza"
Arr(2) = "Hoes"
Dim obj As Cats
Set obj = New Cats
obj.avry = Arr
obj.field = 4
MsgBox UBound(obj.ary)
End Sub
'Class declaration
Private pary() As String
Private pfield As Long
Public Property Get ary(ByVal index As Long) As String
Set ary = pary(index)
End Property
Public Property Let avry(Value() As String)
ReDim pary(UBound(Value)) As String
For i = LBound(Value) To UBound(Value)
pary(i) = Value(i)
Next i
End Property
Public Property Get field() As Long
field = pfield
End Property
Public Property Let field(Value As Long)
pfield = Value
End Property
Private Sub Class_Initialize()
pfield = 0
End Sub
【问题讨论】:
标签: arrays excel class vba object