Comment changer la valeur d'un élément d'une collection
Avec ce code (dans excel-vba) - je ajouter à une collection d'un certain nombre d'éléments selon un tableau.
J'utilise la valeur de la matrice comme la clé et la chaîne de la valeur "NULL" comme valeur pour chaque élément ajouté.
Dim Coll As New collection
Dim myArr()
Set Coll = New collection
myArr() = Array("String1", "String2", "String3")
For i = LBound(myArr) To UBound(myArr)
Coll.Add "NULL", myArr(i)
Next i
Maintenant, si je veux modifier la valeur d'un élément, en l'identifiant par la clé, je dois supprimer l'élément, puis ajouter un élément avec la même clé ou est-il possible de changer la valeur de l'élément?
Ci-dessous est le seul moyen?
Coll.Remove "String1"
Coll.Add "myString", "String1"
Ou est-il quelque chose comme: (je sais que cela ne fonctionne pas)
Coll("String1") = "myString"
Avez-vous essayé d'utiliser un
Autant que je sache, et que ce que MSDN dire, c'est la seule façon. La Tasse est correcte, utilisez un dictionnaire au lieu de cela. Si vous décidez de prendre cette route, vérifier cela.
Vous pouvez pas le faire avec la collection de.
Ok, juste une autre question: est-il une contre-indication pour l'utilisation du dictionnaire plutôt que de collection?
Oui. Cela va vous aider. J'ai trouvé l'autre jour: youtube.com/watch?v=dND4coLI_B8
Dictionary
(à partir de la bibliothèque de scripts) à la place?Autant que je sache, et que ce que MSDN dire, c'est la seule façon. La Tasse est correcte, utilisez un dictionnaire au lieu de cela. Si vous décidez de prendre cette route, vérifier cela.
Vous pouvez pas le faire avec la collection de.
Ok, juste une autre question: est-il une contre-indication pour l'utilisation du dictionnaire plutôt que de collection?
Oui. Cela va vous aider. J'ai trouvé l'autre jour: youtube.com/watch?v=dND4coLI_B8
OriginalL'auteur genespos | 2015-04-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également écrire un (public) d'une fonction pour faire des mises à jour à une collection.
Vous pouvez appeler cette fonction en:
Ensuite, vous avez une doublure à invoquer.
OriginalL'auteur Jurrian Fahner
Ne pouvez pas vous utiliser le
Before
argument pour satisfaire à cette exigence?Exemple:
Ne devrait pas ce faire le travail?
OriginalL'auteur GeertVc