使用不同的关键字VBA在文件夹中查找文件

我是一个新的VBA。 我的问题是,我有一个文件,将其更新到一个特定的文件夹由不同的用户。 现在,每当用户更新文件时,文件的名称可能不是相同的文件夹。 不过,我可以使用特定的关键字缩小范围。 我能够使用关键字search文件,但不能使用多个关键字。 请问您能指出我如何使用多个关键字在文件夹中查找文件的正确方向? 是否有可能编写代码,将像下面的工作?

Sub Start_countries() Dim keyword, pathname, filename As String pathname = "C:\XYZ\" keyword = "lol" Or "rofl" Or "lmfao" Or "rotfl" filename = Dir(pathname & "*.xls*") Do While filename <> "*.xls*" If LCase(filename) Like "*" & keyword & "*" Then Set wb = Workbooks.Open(pathname & filename) Find_count_sum_in_file filename wb.Close SaveChanges:=True Else msgbox = "No file Found" End If Loop End Sub 

尝试以下(适应您的评论):

 Private Const MAX_KWD = 5 ' use a constant to make sure everyone uses the same value Sub Start_countries() Dim keyword(1 To MAX_KWD), pathname As String 'Keywords for first file search keyword(1) = "lol" keyword(2) = "rofl" keyword(3) = "lmfao" keyword(4) = "rotfl" pathname = "C:\XYZ1\" search_for_files keyword(), pathname 'Keywords for second file search keyword(1) = "omg" keyword(2) = "fyi" keyword(3) = "ok" keyword(4) = "brb" pathname = "C:\XYZ2\" search_for_files keyword(), pathname End Sub Sub search_for_files(keyword(), pathname) Dim filename As String, s As String Dim i As Integer filename = Dir(pathname & "*.xls*") Do While InStr(filename, ".xls") <> 0 s = LCase(filename) For i = 1 To MAX_KWD If (InStr(s, keyword(i)) > 0) Then Exit For ' found! Next i If (i <= MAX_KWD) Then Set WB = Workbooks.Open(pathname & filename) Find_count_sum_in_file filename WB.Close SaveChanges:=True Else MsgBox "No file Found" End If filename = Dir() Loop End Sub 

请注意,在Dim pathname, filename, s As String only s中声明为String ; 所有其他声明为VariantAs String不适用于在行上声明的所有variables)。

还要注意,在你的While filename <> "*.xls*" ,testing是准确的,也就是filename星号( * )。