SubFolders.Item(I)给出错误代码800A0005 Runtimeerror无效的程序调用

时间:2014-03-26 14:38:42

标签: vbscript

我创建了一个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

1 个答案:

答案 0 :(得分:2)

由于F1将持有一个物体,

F1 = FOL.SubFolders.Item(i)

应该是

Set F1 = FOL.SubFolders.Item(i)

第二个想法:

错误的真正原因是:文件夹对象没有Item方法。您无法通过For Each随机遍历文件夹。