VBA通过集合循环

Gho*_*ger 11 collections vba loops autocad

我有一个我在SelectManyFiles函数中选择的文件集合,我想在集合函数中的每个Drawing上运行多个私有subs.这是我的代码:

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
Run Code Online (Sandbox Code Playgroud)

我认为循环有问题但不确定!任何帮助表示赞赏.

Dic*_*ika 12

SelectManyFiles返回的集合不返回对象集合.它可能会返回一系列字符串,但这只是猜测.将您的子更改为此

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
Run Code Online (Sandbox Code Playgroud)

并查看Debug.Print为您提供的内容.如果它是任何标量(string,long,double,Boolean等),那么你需要声明Drawing为Variant.只有当所有集合项都是对象时,才能使用Object.