[英]Excel vba - Dir(Path & File) not returning all matching files
我有一個奇怪的難題,除了少數情況外,DIR() 命令按預期返回文件。
MyFile = Dir(FilePath & FileLook)
FileFound = ""
FileKt = 0
Do While MyFile <> ""
FileFound = MyFile
FileKt = FileKt + 1
MyFile = Dir
Loop
FilePath = 文件所在的目錄(例如: C:\\Folder\\ )
FileLook = 尋找特定文件的模板,該文件通常在 YYYYMMDD 之后具有 HHMM(例如:ERROR_FILE_20201129*)
一個不起作用的例外是沒有擴展名(.txt;.zip;等)和“.”的文件。 名稱中的分隔符
XXXXXX.XXX.PROJ.EVENT_YYYYMMDD
返回文件(多數)的搜索示例: FileLook = ERROR_FILE_20201029* 返回 ERROR_FILE_202010291112.txt
注意:作為例外,我嘗試使用和不使用“*”進行搜索
要僅查找 ERROR_FILE_202011291112.txt,您可以使用
FileLook = 'ERROR_FILE_20201129*.*'
但是“*”之前的任何“.”似乎都會使過濾器無效。
無可否認,這是一種解決方法,但您也可以通過讓 FileLook = "" 並在 Dir 命令外部應用過濾器來找到目錄中的所有文件。
MyFile = Dir(FilePath)
FileFound = ""
FileKt = 0
Do While MyFile <> ""
If MyFile Like FileLook Then
FileFound = MyFile
FileKt = FileKt + 1
End If
MyFile = Dir
Loop
以下文件名位於我對此進行測試的文件夾中。
使用 FileLook = "" 評估所有三個文件
希望這對你有用。
謝謝BZngr! 你確實給我指出了一個解決方法。 原本的
MyFile = Dir(FilePath & FileLook)
被保留。 我在反復測試中發現,當某個點只有數字時,Dir() 語句沒有找到任何文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.