Приведенный ниже код запрашивает у пользователя выбор файлов, затем код «делает вещи» для каждого выбранного файла.Часть кода окна сообщения (которая существует только для целей устранения ошибок) правильно отображает каждый выбранный файл, однако часть кода «добавить лист» пытается добавить лист только в одну из выбранных рабочих книг для каждойитерация цикла (поэтому, если пользователь выбирает 4 файла, он пытается добавить лист «Тест» в один из файлов 4 раза).
Dim myFile As Variant
Dim wi As Integer
Dim wb As Workbook
Dim fOpen As Boolean
myFile = Application.GetOpenFilename(MultiSelect:=True)
If Not IsArray(myFile) Then
Exit Sub
Else
For wi = LBound(myFile) To UBound(myFile)
'If workbook already open, activate. otherwise open it
On Error Resume Next
Set wb = Workbooks(Dir(myFile(wi)))
fOpen = Not (wb Is Nothing)
On Error GoTo 0 ' or point to error handler
If Not fOpen Then
Set wb = Workbooks.Open(myFile(wi)) 'if file is not open, open it
End If
wb.Activate
MsgBox myFile(wi)
wb.Sheets.Add.Name = "TEST"
next wi