Здравствуйте!
Прошу помочь в доработке макроса, который собирает листы из разных книг в одну. Как сделать, чтоб он копировал лист только из конкретного файла xls, миновав при этом окно выбора:
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
Dim wbk As Workbook
Dim wbk2 As Workbook
On Error GoTo ErrHandler
Set wbk = ActiveWorkbook
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No files!"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Set wbk2 = Workbooks.Open(Filename:=FilesToOpen(x))
wbk2.Sheets().Move After:=wbk.Sheets(wbk.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Sheets("Лист1").Select ' удаляем создаваемый при копировании лишний лист
ActiveWindow.SelectedSheets.Delete
Sheets("Дилеры").Select
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Прошу помочь в доработке макроса, который собирает листы из разных книг в одну. Как сделать, чтоб он копировал лист только из конкретного файла xls, миновав при этом окно выбора:
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
Dim wbk As Workbook
Dim wbk2 As Workbook
On Error GoTo ErrHandler
Set wbk = ActiveWorkbook
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No files!"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Set wbk2 = Workbooks.Open(Filename:=FilesToOpen(x))
wbk2.Sheets().Move After:=wbk.Sheets(wbk.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Sheets("Лист1").Select ' удаляем создаваемый при копировании лишний лист
ActiveWindow.SelectedSheets.Delete
Sheets("Дилеры").Select
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub