gpt4 book ai didi

excel - VBA 对象数据在集合中被覆盖

转载 作者:行者123 更新时间:2023-12-02 08:46:19 26 4
gpt4 key购买 nike

在下面的循环中,我将一个类对象添加到另一个类对象内的集合中,该类对象本身就在一个集合中。

    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

最佳答案

因此,解决方案是在循环之外实例化机会,然后每次重新初始化,如下所示:

Set opportunity = New ClmOpportunity

关于excel - VBA 对象数据在集合中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com