无法在Excel VBA中将对象添加到集合中

时间:2019-06-11 10:18:02

标签: excel vba

我正在用excel开发一个小型应用程序,以跟踪侦察员徽章的进度。 我有一个包含整数和字符串的Challenge对象。 我有一个ChallengeList对象,其中包含挑战对象列表。 我可以从工作表中将挑战列表(其中的32个)读取到集合中,然后进行debug.print检查,表明已正确创建了挑战对象。

我将对象添加到集合中,但是当我“为每个”集合中的项目并打印它们时,该集合似乎由最后一个项目的32个副本组成。这也是我使用item(x)读取对象的情况。

我怀疑在将对象添加到集合中时做一些愚蠢的事情,但是我看不到什么。我读过,重新读过,对鸭子说话。我正式迷路了。这里有人可以建议我做错了吗?

Sub loadChallenges()
    Dim tempChal As challenge
    Set m_chalList = New Collection
    lineNum = 2

    Set tempChal = New challenge
    currentCell = Sheets("Challenges").Cells(lineNum, 1)
    Do
        'create Challenge object
        tempChal.ID = Sheets("Challenges").Cells(lineNum, 1)
        tempChal.challengeName = Sheets("Challenges").Cells(lineNum, 2)
        'add challenge object to array
        m_chalList.Add tempChal
        lineNum = lineNum + 1
        Debug.Print tempChal.toString 'check object
    Loop Until Len(Sheets("Challenges").Cells(lineNum, 2)) = 0

    'check collection
    For Each tempChal In m_chalList
        Debug.Print tempChal.toString
    Next

End Sub

Debug.print输出:

ID:1 ChallengeName:在吊床上

....

ID:32 ChallengeName:计划,交付和审查“轻量级夜晚”

Check Collection输出是下面一行的32个实例。

ID:32 ChallengeName:计划,交付和审查“轻量级夜晚”

0 个答案:

没有答案