excel - 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
解决方案
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
推荐阅读
- go - go中的[]int{}和[]int有什么区别?
- html - 内容宽度在打印屏幕中不起作用
- python - 只要按住射击按钮,如何射击多发子弹
- php - LAMP Stack 无法正确读取 mysql 数据库,但无法正确插入。功能“成功”没有错误,但数据库不更新
- continuous-integration - GitHub Workflow 中的 `github.event` 有哪些属性?
- django - http流实际上是由http chunk实现的吗?
- jquery - 替换输入jQuery的先前值
- typescript - 打字稿“静态导入”?
- c++ - 重载 '++' 运算符 C++
- java - 如何在eclipse中添加maven参数?