选择多个文件并循环遍历所有文件以根据名称执行操作

时间:2018-02-23 16:04:01

标签: excel vba loops getopenfilename

我编写了一个代码,其中有一个浏览对话框,用于选择多个文件并将文件名保存在数组中,并逐个循环执行基于文件名中的关键字的操作。

  1. 因为它有多选选项,我想根据文件名
  2. 中的关键字执行特定操作
  3. 卡在数组中循环文件名。我知道哪里出错了
  4. 如果我错了,
  5. 纠正我的语法,请耐心等待我 到VBA
  6. 感谢任何帮助

    fNameAndPath = Application.GetOpenFilename(fileFilter:="Excel Files (*.CSV), *.CSV", Title:="Select File To Be Opened", MultiSelect:=True)
    If Not IsArray(fNameAndPath) Then Exit Sub
    
    For Each MyFile In fNameAndPath
        Set wb = Workbooks.Open(MyFile)==========(how to search for specific file name in myfile array.. 
    
        ' do stuff with workbook that has been opened
    
        if myfile= "*test_one*" then
            Set Fnd1 = Range("A1")
            Qty1 = WorksheetFunction.CountIf(Rows(1), "*shop3**high*")
            For Cnt1 = 1 To Qty1
                Set Fnd1 = Rows(1).Find("*shop3**high*",Fnd1, , xlWhole, , , False, , False)
                max_num = Application.WorksheetFunction.Max(Fnd1.EntireColumn)    ' maxnum value is copied to a cell in submit button
            Next Cnt1
        elseif myfile="*test_last*" then
            'similar to macro1
        elseif myfile=test3.csv then
            similar to macro1
        end if.
    wb.Close SaveChanges:=False
    Next MyFile
    End Sub
    

1 个答案:

答案 0 :(得分:1)

if myfile= "*test_one*" then

如果您正在寻找文件名的一部分,那么您需要这样的内容:

If LCase(myfile) Like "*test_one*" Then