我有一组所有者,每个人都有自己的机会。
我有两个类模块,ClmOpportunity有一堆属性,ClmOwner有一个name属性和一个Collection存储ClmOpportunity对象:
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,所以应该没问题呢?
非常感谢任何帮助!
答案 0 :(得分:6)
如果没有返回值,则不使用括号......
owners.item(overallOwner).addOpportunity item
...然后你会得到一个“类型不匹配”错误,因为一个集合需要一个字符串值作为键,所以你需要调整你的addOpportunity
函数(如果它应该是一个Sub {你不打算添加一个返回的值)