Сборка данных с листов макросом на VBA

Виктор2 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
20.04.2023

Необходимо в определенном файле Excel посредством макросом на VBA вписать (по возможности доработать) уже готовую формулу (ниже) чтобы все работало.

А именно, файл собой представляет реестр контрактов по разным менеджерам (их будет 5 человек, соответственно 5 листов (Боброва,Романов, Мишин,Нилов,Михайлева) и необходимо провести сборку данных с разных листов в один (обобщённый реестр) и сделать эту таблицу автоматической или чтобы этот сбор данных происходил по соответствующей команды.

"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"

Заявки фрилансеров