在下面的循环中,我将一个类对象添加到另一个类对象内的集合中,该类对象本身就在一个集合中。
Dim opportunity As New ClmOpportunity
opportunity.name = name
owners.item(overallOwner).addOpportunity opportunity
MsgBox opportunity.name
Next i
MsgBox owners("John Smith").opportunities(1).name
第一个消息框显示正确的机会名称,但第二个消息框设置为最后添加的机会,即使 John Smith 是集合中的第一个。
因此,如果我有两个所有者,John Smith 的机会 1 和 Mary Lou 的机会 2,第二个消息框的输出将是两个记录的机会 2。
但正如预期的那样,第一条消息将是机会 1 和 2。
这是 Owner 类模块的代码:
Public name As Variant
Public opportunities As New collection
Public Function addOpportunity(opp As ClmOpportunity)
Dim OppID As String
OppID = opportunities.count + 1
opp.ID = OppID
opportunities.Add opp, OppID
End Function