首页 > 解决方案 > 获取具有特定扩展名的文件名列表

问题描述

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

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

该代码不返回任何值。

我输入了公式,它似乎返回了值,但是,它导致了一个错误。我删除了 IfError 以测试它是否正常工作。看截图:

【评估公式错误截图

使用与 IfError 一起使用的完整公式,不会调用任何内容,这是不应该发生的:

完整的公式不返回任何内容
[完整公式不返回任何内容截图

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

标签: excelvba

解决方案


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

因为我将公式放在第 47 行,所以我的公式应该是:

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

非常感谢大家!


推荐阅读