获取具有特定扩展名的文件名列表

时间:2019-11-05 05:28:49

标签: excel vba

我想要一个带有特定扩展名的文件名列表。

我正在使用本指南:https://trumpexcel.com/list-of-file-names-from-a-folder-in-excel/

代码不返回任何值。

我输入了公式,似乎返回了值,但是,它导致错误。我删除了IfError来测试它是否仍然有效。查看屏幕截图:

[Evaluate formula error screenshot

将完整公式与IfError一起使用,什么也不会发生,这是不应该发生的:

完整公式不返回任何内容
[Full formula returns nothing screenshot

Function GetFileNamesbyExt(ByVal FolderPath As String, FileExt As String) As Variant

Dim Result As Variant
Dim i As Integer
Dim MyFile As Object
Dim MyFSO As Object
Dim MyFolder As Object
Dim MyFiles As Object

Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set MyFolder = MyFSO.GetFolder(FolderPath)
Set MyFiles = MyFolder.Files
ReDim Result(1 To MyFiles.Count)
i = 1

For Each MyFile In MyFiles
    If InStr(1, MyFile.Name, FileExt) <> 0 Then
        Result(i) = MyFile.Name
        i = i + 1
    End If
Next MyFile

ReDim Preserve Result(1 To i - 1)
GetFileNamesbyExt = Result

End Function

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。原来我的Row()部分是错误的。

由于我将公式放在第47行中,所以我的公式应该是:

=IFERROR(INDEX(GetFileNamesbyExt($CK$44,$CK$45),ROW()-46),"")

非常感谢大家!