我创建了一个vbs示例来说明我的问题。
在我工作的开发环境中,我没有“每个”构造可用。因此,我必须使用'item'-iteration。
ShowFolderList1工作正常,但ShowFolderList2会生成错误。
你能帮我纠正一下语法吗?
ShowFolderList1(“C:\ Windows”)显示指定目录中的文件夹列表。 ShowFolderList2(“C:\ Windows”)给出错误代码800A0005 Runtimeerror无效过程调用“F1 = FOL.SubFolders.Item(i)”。
Sub ShowFolderList1(folderspec)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FOL = FSO.GetFolder(folderspec)
s = ""
For Each F1 in FOL.SubFolders
s = s & F1.Name & vbCrLf
Next
MsgBox(s)
End Sub
Sub ShowFolderList2(folderspec)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FOL = FSO.GetFolder(folderspec)
s = ""
For i = 0 To FOL.SubFolders.Count-1
F1 = FOL.SubFolders.Item(i)
s = s & F1.Name & vbCrLf
Next
MsgBox(s)
End Sub
答案 0 :(得分:2)
由于F1将持有一个物体,
F1 = FOL.SubFolders.Item(i)
应该是
Set F1 = FOL.SubFolders.Item(i)
第二个想法:
错误的真正原因是:文件夹对象没有Item
方法。您无法通过For Each
随机遍历文件夹。