Non capisco perché la riga Debug.Print n & " - " & objTrans2.DESC
nella parte inferiore di questo codice emetta due volte "Descrizione 2". Voglio che emetta "Descrizione 1" e "Descrizione 2".Impossibile compilare la raccolta VBA con oggetti personalizzati utilizzando Collection.add
C'è qualcosa di sbagliato nel modo in cui sto tentando di aggiungere un oggetto personalizzato (Transazione) tramite lo sampleCollection.Add
dall'interno del ciclo For? Il codice funziona meravigliosamente se aggiungo le stringhe alla raccolta anziché agli oggetti.
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
Qualsiasi aiuto per la newbee è apprezzato!
~~~~~~~~~~~~~~~~~~~~~~~
In risposta alla risposta di Mitch, Ecco le informazioni nella classe di transazione:
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
Ho solo aggiunto le dichiarazioni di proprietà all'editor VB in Excel ... quindi copio/incollato ciò che era elencato lì.
Dick, ha funzionato !!! Grazie! Ho passato ore a cercare di capirlo. Grazie per la spiegazione e per il codice ripulito ... Mi piace vedere come altre persone aggiornerebbero il mio codice. – Eric