首页 > 解决方案 > Excel VBA 搜索多种文件格式(PDF、DOC、DOCX、XLS)

问题描述

我有一个代码来列出文件夹中的项目。运行一段时间后它给出的文件太多#N/A。我想限制它正在搜索的文件。我不需要.JPG例如 and .TIFF。如何将我的搜索仅指向 .PDF、.DOC、.XLS 等?

我试过了:

MyFileName = Dir(Key & "*.PDF" Or "*.DOC" Or ".DOCX" Or ".XLS") 

这是我的代码:

For Each Key In AllFolders.keys
    'MyFileName = Dir(Key & "*.*")
    MyFileName = Dir(Key & "*.PDF") 'only PDF files
    Do While MyFileName <> ""
        AllFiles.Add (Key & MyFileName), ""
        MyFileName = Dir
    Loop
Next

标签: excelvba

解决方案


DIR 不接受多个文件扩展名的“掩码”,但构建自己的扩展名是一件小事。

Dim ext As String, myFileName As String

For Each key In AllFolders.keys
    myFileName = Dir(key & "*.*")
    Do While myFileName <> vbNullString
        ext = Mid(myFileName, InStrRev(myFileName, Chr(46)))
        Select Case LCase(ext)
            Case ".pdf", ".doc", ".docx", ".xls"
                Debug.Print myFileName
                AllFiles.Add (key & myFileName), vbNullString
            Case Else
                'do nothing
        End Select
        myFileName = Dir
    Loop
Next key

推荐阅读