Уважаемые форумчане, прошу помощи в создании макроса.
Несколько дней поиска по форуму и интернету не помогли.
Самостоятельно я использую только макрорекордер или пытаюсь компилировать из найденного.
--
Вопрос в следующем:
Имеются файлы с разным количеством листов (до 60) - образец прилагаю.
Названия листов также ежемесячно изменяются.
--
Необходимо в сводном листе (или отдельном файле - не важно) собрать в список последние строки со всех листов книги в порядке их расположения.
Установленный PLEX - не помог.
--
Из найденного у меня получилась вот такая компиляция:
Код |
---|
Sub Копирование_ПОСЛЕДНЕЙ_СТРОКИ_всех_листов_на_ПЕРВЫЙ_ЗНАЧЕНИЯ()
'
'Копирование_данных_всех_листов_на_ПЕРВЫЙ ЗНАЧЕНИЯ (должна быть заполнена последняя ячейка первого копируемого столбца)
If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then
Sheets(1).Range("a1").CurrentRegion.Clear 'очистка листа 1 для последующего на него копирования
s_ = Sheets.Count 'число листов в книге
For i = 2 To s_ 'цикл по всем листам, кроме первого
r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1 'последняя пустая ячейка в столбце A первого листа
LastRow = Range("a:a").SpecialCells(xlLastCell).Row
Range("f" & LastRow & ":j" & LastRow).Copy 'копирование диапазона с каждого листа
Sheets(1).Range("a" & r_).PasteSpecial xlPasteValues 'вставка значений на первый лист
Next
End If
End Sub |
Это макрос,к сожалению, собирает данные только с активного листа (столько раз - сколько листов в книге).
Прошу помочь исправить макрос, чтобы собирал последние строки со всех листов (в виде значений) в список на Сводном листе.
Заранее - спасибо!