72 votes

Comment puis-je utiliser une boucle for each sur un tableau ?

J’ai un tableau de chaînes:

Je passe par chaque chaîne dans le tableau:

`` prend une chaîne comme paramètre

Je reçois une erreur en passant l’élément en tant que chaîne:

Incompatibilité d’argument ByRef

Dois-je convertir l’élément en String ou quelque chose du genre ?

122voto

Bobsickle Points 1215

Element doit être une variante, vous ne pouvez donc pas le déclarer en tant que chaîne. Votre fonction doit accepter un variant s’il s’agit d’une chaîne tant que vous lui passez ByVal.

L’autre option consiste à convertir la variante en chaîne avant de la passer.

44voto

Fink Points 1821

Une structure pour chaque boucle est plus conçue autour de l’objet de collection. A Pour.. Chaque boucle requiert un type variant ou un objet. Étant donné que votre variable « element » est tapée comme une variante, votre fonction « do_something » devra accepter un type de variante, ou vous pouvez modifier votre boucle à quelque chose comme ceci:

8voto

Dick Kusleika Points 15230

J’utilise la variable de compteur comme le suggère Fink. Si vous souhaitez For Each et passer ByRef (ce qui peut être plus efficace pour les chaînes longues), vous devez effectuer un cast de votre élément en tant que chaîne à l’aide de CStr

5voto

slaver113 Points 623

qu’en est-il de cette simple fonction inArray:

3voto

user2922434 Points 29

Si des alternatives sont acceptables dans ce cas, je suggérerais plutôt UBound :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X