Desidero creare un dizionario con più elementi per chiave. Di seguito è riportato il codice con cui sto lavorando ora. Ho trascorso più di 7 ore a giocare con il dizionario e non riesco a capirlo. Non ho problemi a ottenere i valori univoci da un mio intervallo di input come chiavi del mio dizionario, il problema arriva quando voglio aggiungere elementi a ciascuna chiave. Se la chiave esiste già, desidero SUM (o aggiungere) all'elemento di quella chiave, o aumentare il "conteggio" per quella chiave, che verrebbe memorizzata in un altro elemento di quella chiave. Forse è meglio spiegato attraverso le immagini.Dizionario di script VBA, più elementi per chiave e somma/conteggio sugli articoli
Key Item1 Item2
PersonA 20 SomeOtherVal
PersonB 40 SomeOtherVal
PersonA 80 SomeOtherVal
PersonB 17 SomeOtherVal
PersonC 13 SomeOtherVal
Result:
Key Item1(Sum) Item2(Count)
PersonA 100 2
PersonB 57 2
PersonC 13 1
Quindi, come potete vedere, tutti gli oggetti unici esistenti vengono creati come una propria chiave. Se la chiave esiste già, l'elemento 1 viene aggiunto al totale corrente della chiave, l'articolo 2 ha un conteggio e viene aumentato di 1. Di seguito è riportato il codice con cui sto lavorando, Appreico la tua assistenza.
Sub dictionaryCreate()
Dim Pair As Variant
Dim q As Range
Dim RAWDATA As Range
Dim d As Dictionary 'Object
Set d = New Dictionary 'CreateObject("Scripting.Dictionary")
Set RAWDATA = Worksheets("RAW_DATA").Range(Cells(2, 1), Cells(3000, 1))
For Each q In RAWDATA
Pair = q.Offset(0, 60).Value + q.Offset(0, 65).Value
If d.Exists(Pair) Then
'ADD to item1 SUM
'Add to item2 COUNT
Else
d(Pair) = 1 'create new key
End If
Next
End Sub
@ Tim Williams, mi dispiace, non ho visto la tua risposta. Indovina che l'intera faccenda è saltata fuori da tutti noi. – Ambie
Nevermind, non mi ero reso conto che dovevi nominare i tuoi moduli di classe .. test – Citanaf
Ok, ho finito per usare il tuo codice e ha funzionato bene. Ora ho una collezione e un elenco oggetti e una somma/conteggio per ogni articolo. Lottando per ottenere il blocco delle lezioni, ma ho molto di più da aggiungere a questo quindi è un ottimo inizio. Grazie – Citanaf