Столкнулся со статьёй https://www.planetaexcel.ru/techniques/12/7453/ где возможно собрать данные со всех листов книги в один лист. А возможно ли дополнить этот макрос, если в книге 10 листов, а надо чтобы собирало данные с нескольких листов (Например: "Лист1", "Лист2").
Код
Sub CollectDataFromAllSheets()
Dim ws As Worksheet
Set wbCurrent = ActiveWorkbook
Workbooks.Add
Set wbReport = ActiveWorkbook
'копируем на итоговый лист шапку таблицы из первого листа
wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")
'проходим в цикле по всем листам исходного файла
For Each ws In wbCurrent.Worksheets
'определяем номер последней строки на текущем листе и на листе сборки
n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count
'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор:
Set rngData = ws.Range("A1:D5") 'фиксированный диапазон или
Set rngData = ws.UsedRange 'всё, что есть на листе или
Set rngData = ws.Range("F5").CurrentRegion 'область, начиная от ячейки F5 или
Set rngData = ws.Range("A2", ws.Range("A2").SpecialCells(xlCellTypeLastCell)) 'от А2 и до конца листа
'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки
rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
Next ws
End Sub
По почерку принтера можно судить о том, как нервничает компьютер
Надо после строки For Each ws In wbCurrent.Worksheets Дописать проверку If ws.name = "Лист1" or ws.name = "Лист2" then И перед строкой next ws добавить end if
Шаин, 13ой строкой проверяйте If ws.Name="Лист1" Or ws.Name="Лист2" Then и 25ой строкой закройте проверку End If
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄