2009-10-31 41 views
0

我目前正在嘗試搜索任何標有「?? ?? ?? ????。xls」(對於mm.dd.yyyy.xls)文件的目錄。我遇到的問題是我正在使用的代碼也匹配文件名,例如「my-restaurant.12.01.2006.xls」。我只想匹配文件名,特別是我上面使用的符號。FileSearch嚴格性問題

Dim Invoices As FileSearch 
Set Invoices = Application.FileSearch 

With Invoices 
    .Filename = "??.??.????.xls" 
    ' invDir is a directory I chose earlier on 
    .LookIn = invDir 
    .SearchSubFolders = True 
    .MatchTextExactly = True 
End With 

有什麼我失蹤了嗎?我知道我可以在別處檢查我的代碼,以確保文件名的長度是14個字符,但是在FileSearch中我沒有考慮一個參數嗎?

回答

0

經過一番研究和圍繞在附近,我得出結論:沒有長時間檢查的精確匹配不能完成。

Btw。從辦公室Application.FileSearch object isn't longer available 2007+,所以也許可以考慮使用FileSystemObject代替

+0

沒有做任何事情我應該提到,我使用的是Office 2003中。謝謝您的好意:) – JakeTheSnake 2009-10-31 21:10:01

+0

最後,我只是在試圖打開文件之前對文件名稱進行Len()檢查。我寧願不必爲每個引用的文件都這樣做,但它仍然解決了我的問題。 – JakeTheSnake 2009-11-02 16:33:11

0

嘗試使用像NewSearch方法,以便:

Dim Invoices As FileSearch 
Set Invoices = Application.FileSearch 

With Invoices 
    .NewSearch 
    .Filename = "??.??.????.xls" 
    '' invDir is a directory I chose earlier on 
    .LookIn = invDir 
    .SearchSubFolders = True 
    .MatchTextExactly = True 
End With 

文檔中的講話使我相信,搜索條件尚未設置/復位:

搜索條件設置將被保留在整個應用程序會話中使用 。每次更改 搜索條件時,均使用 此方法。此方法不會重置 屬性的值。

+0

可悲的是他的問題 – jitter 2009-10-31 20:36:27