我正在用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:计划,交付和审查“轻量级夜晚”