FileSearch严格性问题

时间:2009-10-31 20:03:48

标签: vba excel-vba excel

我正在尝试在目录中搜索任何标有“??。??。????。xls”(对于mm.dd.yyyy.xls)的文件。我遇到的问题是我使用的代码也匹配文件名,如“my-restaurant.12.01.2006.xls”。我只想将文件名与我上面使用的符号相匹配。

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中没有考虑参数吗?

2 个答案:

答案 0 :(得分: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

文档中的评论让我相信搜索条件尚未设置/重置:

  

保留搜索条件设置   整个应用程序会话。使用   这种方法每次你改变   搜索条件。这种方法不会   重置LookIn的值   属性。

答案 1 :(得分:0)

经过一些研究和玩弄后,我得出结论,没有长度检查的精确匹配无法完成。

顺便说一下。来自Office 2007+的Application.FileSearch object isn't longer available所以也许可以考虑使用FileSystemObject代替