VBscript中的列表返回对象

时间:2016-03-30 17:11:36

标签: vbscript

我正在编写一个看起来像这样的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

1 个答案:

答案 0 :(得分:1)

For Each循环已经枚举了集合的项目。由于您只为集合指定了名称,因此只需使用循环变量来获取名称:

For Each file In XLSFileList
    name = file
Next

Item属性可用于直接访问集合中的特定项目:

WScript.Echo XLSFileList.Item(0)