Me sorprende lo difícil que ha sido hacer esto, pero me imagino que es una solución rápida, así que pregunto aquí (busqué en google y en la documentación pero ninguno me ayudó). Tengo un código que agrega elementos a una colección usando claves. Cuando me encuentro con una clave que ya existe en la colección, simplemente quiero configurarla agregando un número al valor actual.Estableciendo la propiedad Item de una Colección en VBA
Aquí está el código:
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 primera vez que añadir el par clave/valor en la colección, añado un entero como el valor. Cuando vuelvo a encontrar la clave, trato de agregar otro entero al valor, pero esto no funciona. No creo que el problema radique en ningún tipo de desajuste de objeto o algo similar. El mensaje de error momento que consigo es
Tiempo de ejecución Error 424: Objeto requerido
Esta respuesta a una pregunta anterior relacionada también debería responder a su pregunta: http://stackoverflow.com/questions/5709444/modify-value-by-key/5710063 # 5710063. La versión corta es que las colecciones no funcionan como matrices; no puedes reasignar un "elemento". Las respuestas que otros ya le dieron son buenas formas alternativas de obtener lo que desea. – jtolle