Sono sorpreso di quanto sia stato difficile farlo, ma immagino sia una soluzione rapida, quindi chiederò qui (ricerche su google e documentazione ma nessuna delle due ha aiutato). Ho del codice che aggiunge elementi a una collezione usando le chiavi. Quando mi imbatto in una chiave che esiste già nella collezione, voglio semplicemente impostarla aggiungendo un numero al valore corrente.Impostazione della proprietà Item di una raccolta in VBA
Ecco il codice:
If CollectionItemExists(aKey, aColl) Then 'If key already has a value
'add value to existing item
aColl(aKey).Item = aColl(aKey) + someValue
Else
'add a new item to the collection (aka a new key/value pair)
mwTable_ISO_DA.Add someValue, aKey
End If
La prima volta che aggiungo la coppia chiave/valore nella collezione, sto aggiungendo un numero intero come valore. Quando mi imbatto nuovamente nella chiave, cerco di aggiungere un altro numero intero al valore, ma questo non funziona. Non penso che il problema risieda in alcun tipo di disadattamento dell'oggetto o qualcosa di simile. Il messaggio di errore che attualmente ottengo è
Runtime Error 424: oggetto richiesto
Questa risposta a una domanda precedente e correlata dovrebbe anche rispondere alla tua domanda: http://stackoverflow.com/questions/5709444/modify-value-by-key/5710063 # 5710063. La versione breve è che le raccolte non funzionano come gli array; non puoi riassegnare un "elemento". Le risposte che altri ti hanno già dato sono buoni modi alternativi per ottenere quello che vuoi. – jtolle