如何将一个对象插入到一个数组中,该数组是用户修改类中的一个字段?VBA
我有一个类,它包含一个成对数组 当我尝试向该数组插入新对时,会收到一条错误消息 为什么我会出现这个错误,我该如何解决这个问题如何将一个对象插入到一个数组中,该数组是用户修改类中的一个字段?VBA,vba,excel,class,properties,private,Vba,Excel,Class,Properties,Private,我有一个类,它包含一个成对数组 当我尝试向该数组插入新对时,会收到一条错误消息 为什么我会出现这个错误,我该如何解决这个问题 '#### The class instance: #### dim pairsHolder as new ClassArrayOfPairs pairsHolder.init(5) '#### The pair instance: #### dim pair as new ClassPairs pair.setLeft(4) ... pair.set
'#### The class instance: ####
dim pairsHolder as new ClassArrayOfPairs
pairsHolder.init(5)
'#### The pair instance: ####
dim pair as new ClassPairs
pair.setLeft(4) ... pair.setRight(7) ....
'#### Trying to insert pair to array: ####
Call pairsHolder.insertPairAt (0,pair)
最后一条语句引发了一个错误:
运行时错误438:对象不支持此属性或方法
下面是课堂:
'@@@@@ CLASS ArrayOfPairs @@@@@
'--------------------------------
Private pairArr() As ClassPairs
Private maxPairs As Integer
'##### Initialize Parameters #####
Public Sub init(howManyPairs As Integer)
maxPairs = howManyPairs
ReDim pairArr(maxPairs - 1) As ClassPairs
End Sub
'##### INSERT pair #####
Public Sub insertPairAt(index as Integer, pair As ClassPairs)
pairArr(index) = pair
End Sub
为了澄清,
ClassPairs
只是一个带有Left
和Right
字段变量的对象。我可以通过在pairar(index)=pairar
之前简单地添加Set
来解决您的问题:
'##### INSERT pair #####
Public Sub insertPairAt(index as Integer, pair As ClassPairs)
Set pairArr(index) = pair
End Sub
您正在设置
pairar(index)=pair
pair
和pairar(index)
是对象。因此,您需要为pairar(index)
分配一个对象引用,使其成为pair
,并且Set
用于分配对象引用。
'##### INSERT pair #####
Public Sub insertPairAt(index as Integer, pair As ClassPairs)
Set pairArr(index) = pair
End Sub
您正在设置
pairar(index)=pair
pair
和pairar(index)
是对象。因此,您需要将对象引用分配给pairar(index)
,使其成为pair
,并且Set
用于分配对象引用。第一行代码中是否有输入错误?您的类似乎没有被称为ClassArrayOfPairs
,但这就是您创建的对象类型?第一行代码中是否有输入错误?您的类似乎没有被称为ClassArrayOfPairs
,但这就是您创建的对象的类型?兄弟!你现在是我的上帝了:)谢谢你!那个helped@TalKohavy没问题!很高兴我能帮忙!兄弟!你现在是我的上帝了:)谢谢你!那个helped@TalKohavy没问题!很高兴我能帮忙!