Выбор нескольких файлов и цикл по всем для выполнения действий на основе имен
Я написал код, который имеет диалоговое окно просмотра, чтобы выбрать несколько файлов и сохранить имена файлов в массиве и зациклить их один за другим выполнить действие на основе ключевого слова в имени файла.
- так как он имеет опцию множественного выбора, я хочу выполнить определенное действие на основе ключевого слова в имени файла
- я застрял в цикле имена файлов в массиве. Я знаю, где я иду не так
- исправьте мой синтаксис, если я ошибаюсь, терпите меня, так как я новичок в VBA
ценю любую помощь
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