Prise de vide VBA collection
J'ai un problème avec un objet de Collection dans Visual Basic pour les Demandes (je l'utilise avec Excel)
J'ai ce code d'essayer de vider un objet de Collection que j'ai ré-utilisation:
Sub limpieza(ByRef listilla As Collection)
While listilla.Count <> 0
listilla.Remove (listilla.Count)
Wend
End Sub
Mais quand je l'appelle avec:
Dim listado As New Collection
<I have some code here that add some values to the collection>
limpieza (listado)
VBA me dit que
argument n'est pas facultatif
et le code ne s'exécute pas.
Que puis-je faire? J'ai besoin d'utiliser cette collection de nettoyage au fond d'une boucle qui réutilise l'objet de Collection.
OriginalL'auteur Antonio E. | 2013-05-30
Vous devez vous connecter pour publier un commentaire.
Remarque que j'ai enlevé le
()
autour de l'argument.Lors du passage de
byref
vous voulez faire cela comme()
causes VBA passer commebyval
par défaut, sauf si vous ajoutezCall
.Cela peut être très frustrant car bien souvent, vous pouvez réellement utiliser
subName(args)
que la syntaxe parfois, mais ces sortes de problèmes. Je l'utilise généralementCall mySubName(args)
pour rendre les choses plus claires.OriginalL'auteur enderland
Si vous souhaitez vider une collection, au lieu d'appeler une procédure distincte, il suffit d'utiliser
listado = Nothing
je peux faire la même chose. - Je tenir le vote sur enderlands réponse, car il a résolu plus de la procédure de problèmes o me. Voir vous.OriginalL'auteur Dick Kusleika