Доброго времени суток, Планетяне! Создал тему, чтобы сохранить у себя в закладках, т.к. решения не нашёл и подсмотрел у автора сайта
Очевидное решение - копировать по одному листу в цикле, НО ошибка всё-равно появляется. Оказывается, достаточно просто снять выделение с группы листов (ActiveSheet.Select) и всё — можно копировать массивом всё и сразу
Пример кода
Код
Sub КопироватьВыделенныеЛисты()
Dim x, arr(), WB As Workbook, i&
Set WB = ActiveWorkbook
ReDim arr(ActiveWindow.SelectedSheets.Count - 1)
For Each x In ActiveWindow.SelectedSheets
arr(i) = x.Name: i = i + 1
Next x
Application.ScreenUpdating = False: Application.DisplayAlerts = False: ActiveSheet.Select
Workbooks.Open "ПОЛНЫЙ_ПУТЬ_К_ФАЙЛУ"
WB.Sheets(arr).Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveWorkbook.Close True
Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
написал: Создал тему, чтобы сохранить у себя в закладках, т.к. решения не нашёл
В дополнение коллекции.
Мне нужно сохранять конкретные листы, а не выделенные. Сначала удаляю макросом все лишние листы. Затем удаляю все запросы в файле. Сохраняю книгу под новым именем. Открываю исходный файл, снова удаляю лишние листы оставляя новую группу файлов... и т.д