Выбор нескольких файлов и цикл по всем для выполнения действий на основе имен

Я написал код, который имеет диалоговое окно просмотра, чтобы выбрать несколько файлов и сохранить имена файлов в массиве и зациклить их один за другим выполнить действие на основе ключевого слова в имени файла.

  1. так как он имеет опцию множественного выбора, я хочу выполнить определенное действие на основе ключевого слова в имени файла
  2. я застрял в цикле имена файлов в массиве. Я знаю, где я иду не так
  3. исправьте мой синтаксис, если я ошибаюсь, терпите меня, так как я новичок в VBA
  4. ценю любую помощь

    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 ответ

Решение
if myfile= "*test_one*" then

Если вы ищете часть имени файла, то вы хотите что-то вроде этого:

If LCase(myfile) Like "*test_one*" Then
Другие вопросы по тегам