No entiendo por qué la línea Debug.Print n & " - " & objTrans2.DESC
en la parte inferior de este código está produciendo "Descripción 2" dos veces. Quiero que muestre "Descripción 1" y "Descripción 2".No se puede completar la colección VBA con objetos personalizados utilizando Collection.add
¿Hay algún problema con la forma en que trato de agregar un objeto personalizado (Transacción) a través del sampleCollection.Add
desde dentro del bucle For? El código funciona maravillosamente si agrego cadenas a la colección en lugar de objetos.
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
¡Se agradece cualquier ayuda para newbee!
~~~~~~~~~~~~~~~~~~~~~~~
En respuesta a la respuesta del Mitch, aquí está la información en la clase de transacción:
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
Solo agregué las declaraciones de propiedades al editor de VB en Excel ... así que copié/pegué lo que allí figuraba.
¡Dick, eso funcionó! ¡Gracias! Pasé horas tratando de resolver eso. Gracias por la explicación y por el código limpio ... Me gusta ver cómo otras personas actualizarían mi código. – Eric