我正在编写一个看起来像这样的vbscript函数:
Public Function fnGetXLSFileCount()
Dim fso, src, folder, file, fileList
Set fileList = CreateObject("System.Collections.ArrayList")
Set fso = CreateObject("Scripting.FileSystemObject")
src = "\\myserver\myfolder"
Set folder = fso.GetFolder(src)
For Each file In folder.files
If LCase(fso.GetExtensionName(file)) = "xlsx" Then
fileList.Add file.name
End If
Next
Set fnGetXLSFileCount = fileList
End Function
如您所见,我正在创建一个ArrayList,然后添加指定文件夹中存在的excel文件的所有名称。
然后我调用此函数并使用Set运算符指定我期望返回一个对象。
Set XLSFileList = fnGetXLSFileCount
当我检查对象的计数时,它似乎是正确的。 当我试图把名字拉出来时,那里什么都没有。我在这里做错了什么?
For each file in XLSFileList
name = file.Item(0)
Next
答案 0 :(得分:1)
For Each
循环已经枚举了集合的项目。由于您只为集合指定了名称,因此只需使用循环变量来获取名称:
For Each file In XLSFileList
name = file
Next
Item
属性可用于直接访问集合中的特定项目:
WScript.Echo XLSFileList.Item(0)