J'ai une collection de fichiers que j'ai sélectionnés dans la fonction SelectManyFiles et je veux exécuter plusieurs sous-marins privés sur chaque dessin dans la fonction de collection. Voici mon code:
Sub Main()
Dim Drawing As Object
Dim Drawings As Collection
Set Drawings = SelectManyFiles()
For Each Drawing In Drawings
'Call multiple private subs to run on each drawing
Next Drawing
End Sub
Je pense qu'il y a quelque chose qui ne va pas avec la boucle mais je ne sais pas exactement! Toute aide est appréciée.
La collection renvoyée par SelectManyFiles ne renvoie pas une collection d'objets. Il renvoie probablement une collection de cordes, mais ce n'est qu'une supposition. Changez votre sous-marin en ceci
Sub Main()
Dim Drawing As Variant
Dim Drawings As Collection
Set Drawings = SelectManyFiles()
For Each Drawing In Drawings
Debug.Print TypeName(Drawing)
Next Drawing
End Sub
Et voyez ce que Debug.Print vous offre. S'il s'agit d'un scalaire (chaîne, long, double, booléen, etc.), vous devez déclarer Drawing
comme Variant. Ce n'est que si tous les éléments de la collection sont des objets que vous pouvez utiliser Object.