L'identification de l'itération d'une boucle For each en VBA?
Si j'ai une boucle qui commence:
For each c in Range("A1:C8")
Est-il une propriété de l'espace réservé c (c.count, c.value, c.something,...)
qui identifie le nombre de fois que la boucle est itéré jusqu'à présent? Je préfère utiliser quelque chose comme ceci que, y compris d'une autre variable.
- Nope. Vous devez compter vous-même.
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser un "for each c in range" vous pouvez faire quelque chose comme ceci:
Cela vous permet de faire exactement la même Pour le/la boucle Suivante, sans y compris l'inutile de la variable compteur. Dans ce cas,
c
est un compteur, mais sert également dans le but d'identifier les cellules touchées par le code.For Each c In Range
syntaxe, vous pouvez utiliserc.Font.Bold = True
l'intérieur de la boucle, donc il n'est pas nécessaire pour leLong
variable...Long
variable si l'OP veut être en mesure de compter le nombre d'itérations effectuées sans l'utilisation d'un autre variable compteur.c
de chaque itération dans unFor Each c ...
le même quemyRange.Cells(c)
? Donc, pour des OP de la requête, il y a un moyen de faire ce qu'il veut sans le "plus" variable compteur. Il peut ne pas fonctionner pour tout, mais dans mon expérience, il travaille sur les cellules de gamme, specialcells, les éléments dans un tableau, les points en série, en série dans le graphique, les contrôles sur la forme, les formes sur la feuille, etc. -- pouvez-vous donner quelques exemples de cas où cette méthode ne fonctionne pas si l'OP peut déterminer quelle sera la meilleure approche pour son problème?c
dans le po exemple de code).font.bold = true
était juste quelque chose que j'ai pensé rapidement. Je ne sais pas ce que la coopérative doit ou veut le comptoir et il n'a pas vraiment d'importance. Oui, il a déjà une référence àc
dans son exemple de code, mais il voulait un moyen de l'indice de la cellule touchée sans créer une variable supplémentaire à compter de l'itération.Vous avez besoin de compter vous-même comme ce
Ou
Range("A1:C8").Cells(c)
tant quec
est dimensionnée comme une longue/nombre entier.(Révisée)
À l'aide de la Colonne ou de la Rangée des propriétés, selon la direction que vous itération, vous pouvez calculer un nombre ordinal à la volée. Ainsi