【发布时间】:2011-03-14 09:27:54
【问题描述】:
我正在尝试在 For 循环中通过 sampleCollection.Add 添加自定义对象(事务)。
如果我将字符串而不是对象添加到集合中,则代码有效。
Public Function PopCollection()
Dim sampleCollection As New Collection
Dim objTrans As New Transaction
Dim objTrans2 As New Transaction
'********** SETUP ARRAY FOR LOOP *************
Dim arrA(0 To 1) As String
arrA(0) = "Description 1"
arrA(1) = "Description 2"
'********** POPULATE COLLECTION *************
For n = 0 To 1
objTrans.DESC = arrA(n)
Call sampleCollection.Add(objTrans)
Next n
'********** ITERATE THROUGH COLLECTION *************
For n = 1 To sampleCollection.Count
Set objTrans2 = sampleCollection.Item(n)
Debug.Print n & " - " & objTrans2.DESC
Next n
End Function
此代码底部的Debug.Print n & " - " & objTrans2.DESC 行输出了两次“Description 2”。我希望它输出“描述 1”和“描述 2”。
这是Transaction类中的信息:
Public PTXN As Integer
Public ACCTID As Integer
Public CHECKNUM As String
Public DESC As String
Public STATUS As String
Public TRANSACTIONDATE As String
Public SPLIT_DESC As String
Public SPLIT_AMT As Single
Public SPLIT_CATEGORY As Integer
我只在 Excel 的 VB 编辑器中添加了属性声明。我复制/粘贴了那里列出的内容。
【问题讨论】:
标签: vba collections object for-loop