我正在尝试在目录中搜索任何标有“??。??。????。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中没有考虑参数吗?
答案 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代替