VBA将对象传递给另一个对象集合
我有一套业主,每个业主都有各自的机会。
我有两个类模块,具有一堆属性的ClmOpportunity和具有单个名称属性的ClmOwner和存储ClmOpportunity对象的Collection:
Public name As Variant Private opps As New collection Public Function addOpportunity(opp As ClmOpportunity) opp.ID = opps.Count + 1 opps.Add opp, opps.Count + 1 End Function
这些所有者对象也被存储在我的主模块的集合中。 当我尝试使用addOpportunity函数时,如下所示:
Dim item As New ClmOpportunity item.name = "test" owners.item(overallOwner).addOpportunity (item)
我得到的错误:
“对象不支持这个属性或方法”
我对VBA很新,我不明白这是为什么,我正在通过一个ClmOpportunity,所以它应该没问题吧?
任何帮助将不胜感激!
如果没有返回值,则不使用括号。
owners.item(overallOwner).addOpportunity item
…然后你会得到一个“types不匹配”的错误,因为集合期望一个string值作为一个键,所以你需要调整你的addOpportunity
函数(如果你不打算添加一个返回值)