Объединение нескольких таблиц в одну - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5