Короткий и сверхбыстрый макрос, объединяющий содержимое нескольких листов одной книги в один лист без потери данных. Такая задача может понадобиться совершенно для разных целей, поэтому сразу приступлю к демонстрации исходного кода на Visual Basic for Application (VBA).
Исходный текст макроса:
Sub UnionPages() For L = 2 To Sheets.Count Sheets(L).Range("A1:Z" & Sheets(L).UsedRange.Rows.Count + 1).Copy Sheets(1).Range("A" & Sheets(1).UsedRange.Rows.Count + 1) Next End Sub
Примечание:
- Для правильной работы нужно создать пустой лист с порядковым номером 1. Результат объединения будет помещаться в него.
- Лучше всего использовать MS Excel версии 2007 и выше, так как в нем высокий потолок ограничений на объем данных.
- Код макроса нужно поместить в текущую книгу через сочетание клавиш Alt - F11.
- Диапазон, который берется из листов, можно регулировать. В примере A1:Z.
На практике мне пришлось объединять листы в количестве более 200 шт. Макрос показал себя хорошо как по качеству так и по скорости обработки.
Прилагаю готовую книгу с макросом объединения листов для скачивания.