VBA 遍历集合
VBA Looping through a Collection
我有一个在 SelectManyFiles 函数中选择的文件集合,我想 运行 在集合函数中的每个绘图上创建多个私有子集。这是我的代码:
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
我认为循环有问题但不确定!感谢任何帮助。
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
看看 Debug.Print 给你带来了什么。如果它是任何标量(字符串、长整型、双精度、布尔型等),则需要将 Drawing
声明为 Variant。只有当所有的集合项都是对象时,才能使用 Object.
尝试
FOR X = 1 TO DRAWING.COUNT
'STUFF HAPPENS
NEXT X
我有一个在 SelectManyFiles 函数中选择的文件集合,我想 运行 在集合函数中的每个绘图上创建多个私有子集。这是我的代码:
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
我认为循环有问题但不确定!感谢任何帮助。
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
看看 Debug.Print 给你带来了什么。如果它是任何标量(字符串、长整型、双精度、布尔型等),则需要将 Drawing
声明为 Variant。只有当所有的集合项都是对象时,才能使用 Object.
尝试
FOR X = 1 TO DRAWING.COUNT
'STUFF HAPPENS
NEXT X