Excel - объединить несколько листов в один

вопрос

Я использую Excel для хранения информации о нескольких продуктах и ​​у меня есть разные таблицы для каждого диапазона. Как объединить (последовательно объединить) все эти рабочие листы в одну страницу? Все листы одинакового количества столбцов, с одинаковым названием (в верхнем ряду).

Как действовать?

Решение

При условии, что:

1. Лист под названием «Консолидированный» может быть создан и удален макросом

2. Заголовки находятся в строке 1 на всех листах и ​​являются общими для всех

3. Все листы должны быть скопированы

 Sub CombineSheets () Dim lConRow в виде длинного затемненного листа в качестве варианта Dim sConsolidatedSheet в виде строки Dim lSheetRow в виде длинного Dim sLastCol в виде строки sConsolidatedSheet = "Consolidated" при ошибке Возобновить следующие листы (sConsolidatedSheet). Удалите при ошибке GoName 0 Sheets.Set. sConsolidatedSheet для каждого листа в листах, если Sheet.Name = sConsolidatedSheet Затем GoTo Next_Sheet If sLastCol = "" Тогда sLastCol = Sheet.Cells (1, Columns.Count) .End (xlToLeft) .Address Sheets (sConsolidatedSheet). 1 ") = Sheet.Range (" 1: 1 "). Значение lConRow = 1 Конец, если lSheetRow = 0 При ошибке Возобновить Далее lSheetRow = Sheet.Cells.Find (" * ", Ячейки (1, 1), SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row при ошибке GoTo 0 If (lSheetRow> 1) Тогда Sheets (sConsolidatedSheet) .Range (lConRow + 1 & ":" & lSheetRow + lConRow - 1) = Sheet.Range ("2:" & lSheetRow) .Value lConRow = Sheets (sConsolidatedSheet) .Cells.Find ("*", Cells (1, 1), SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row End If Next_Sheet: Next End Sub 

Спасибо rizvisa1 за этот совет.

Предыдущая статья Следующая статья

Лучшие советы