Объединение нескольких таблиц в одну - VBA
Формулировка задачи:
Добрый день!Excel'ем приходится пользоваться нечасто, поэтому прошу не пинать
Суть задачи:
Есть несколько таблиц с одинаковыми шапками на разных листах (Время - Событие - прочие данные).
Требуется на отдельном листе создать общую таблицу, которая будет банально объединять в себя все строчки из моих таблиц.
То есть итоговая таблица должна содержать все строки из исходных как если бы мы их копировали вручную. Желательно, при этом, чтобы она была динамической (при изменении/добавлении данных в исходные она должна обновляться).
Консолидация - не то что нужно, как я понял.
Пример:
Таблица 1:
10:30 - Подъём
11:30 - Завтрак
Таблица 2:
10:45 - Зарядка
15:40 - Обед
Итоговая таблица:
10:30 - Подъём
11:30 - Завтрак
10:45 - Зарядка
15:40 - Обед
Заранее спасибо!
Решение задачи: «Объединение нескольких таблиц в одну»
textual
Листинг программы
Private Sub Worksheet_Activate() Dim w As Worksheet, i&, j& Application.ScreenUpdating = False Cells.ClearContents j = 1 For Each w In Worksheets If Not w Is Me Then With w.UsedRange i = .Rows.Count If j > 1 Then 'не первая таблица переносится If i > 1 Then 'есть строки кроме заголовка - переносим их Cells(j, 1).Resize(i - 1, .Columns.Count).Value = .Rows(2).Resize(i - 1).Value j = j + i - 1 End If Else 'первая таблица переносится Cells(j, 1).Resize(i, .Columns.Count).Value = .Value j = j + i End If End With End If Next Cells(1, 1).Sort Cells(1, 1), xlAscending, Header:=xlYes 'сортировка, необязательно Application.ScreenUpdating = True End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д