2009-08-18 8 views
47

J'utilise la classe Dictionary dans la bibliothèque MS Runtime Scripting pour stocker où les étiquettes vont aller pour un modèle de rapport. Existe-t-il un moyen d'itérer sur toutes les paires de valeurs clés dans ce dictionnaire comme dans Python? Je veux juste utiliser la clé comme numéro de ligne (Tout va dans la colonne A) et la valeur sera l'en-tête de l'étiquette.Itérer sur les dictionnaires VBA?

Quelque chose comme:

For Each key in dict 
    Range("A" & key).Value = dict(key) 
Next key 

Répondre

83

Essayez:

For Each strKey In oDic.Keys() 
    Range("A" & strKey).Value = oDic(strKey) 
Next 
+23

Je voudrais ajouter que strKey doit être déclarée 'Comme Variant', parce que le' Pour Each' ne fonctionne pas avec 'String's . – stenci

Questions connexes