2016-03-28 32 views
2

Ich habe eine Sammlung von Dateien, die ich in der SelectManyFiles-Funktion ausgewählt habe, und ich möchte mehrere private Subs auf jeder Zeichnung in der Sammlungsfunktion ausführen. Hier ist mein Code:VBA Looping durch eine Sammlung

Ich denke, es ist etwas falsch mit der Schleife, aber nicht sicher, genau! Jede Hilfe wird geschätzt.

+0

Sie wissen also oder nicht, ob das funktioniert? Haben Sie einen anderen Code, den Sie ausprobiert haben und der nicht funktioniert? –

+0

Das funktioniert nicht. Es gibt mir den Fehler von Objekt erforderlich. – GhostTiger

+0

Was ist die Art von "Zeichnungen"? Die Klasse "Collection" ist aufzählbar? –

Antwort

2

Die von SelectManyFiles zurückgegebene Sammlung gibt keine Objektsammlung zurück. Es gibt wahrscheinlich eine Sammlung von Strings zurück, aber das ist nur eine Vermutung. Ändern Sie Ihre Sub zu diesem

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 

Und sehen, was die Debug.Print gibt Ihnen. Wenn es ein Skalar ist (String, Long, Double, Boolean, usw.), müssen Sie Drawing als Variant deklarieren. Nur wenn alle Sammlungsobjekte Objekte sind, können Sie Objekt verwenden.