Как добавить длинные таблицы в один мастер-лист (не консолидировать) - PullRequest
0 голосов
/ 11 января 2019

У меня около 10 листов с одинаковыми столбцами, но разным количеством строк (до 1000 на лист). Разные люди заполняют листы (и иногда непреднамеренно портят форматирование).

Я хотел бы получить способ собрать все данные в один мастер-лист, чтобы он брал данные из листа 1, A1: H1000 и помещал их в мастер-лист A1: H1000, а затем собирал данные из листа 2, A1: H1000 и помещает его в мастер-лист, A1001: H2001

И так далее. (Таким образом, я могу разместить фильтры / сводные таблицы на главном листе и видеть все в системе без необходимости вручную извлекать данные с каждого листа - которые ежедневно становятся длиннее.)

Я попытался определить диапазоны в виде таблиц, и может заставить его выполнить, возможно, 3 листа, но полагается на людей, заполняющих листы, осторожных и, кажется, перегруженных.

Есть ли простой способ?

TL; dr Как автоматически укладывать строки из листов A и B друг на друга в листе C?

Спасибо!

1 Ответ

0 голосов
/ 11 января 2019

Если листы упорядочены последовательно в рабочей книге (скажем, из индексов с 1 по 10), вы можете использовать простой цикл:

Sub combine()

    Dim i As Integer
    Dim startRow As Long: startRow = 1
    Dim endRow As Long: endRow = 1000

    ' enter master sheet name below
    With ThisWorkbook.Worksheets("master sheet name")

        ' setup the start & end indexes below
        For i = 1 To 10
            .Range(.Cells(startRow, "A"), .Cells(endRow, "H")).Value = ThisWorkbook.Worksheets(i).Range("A1:H1000").Value
            startRow = startRow + 1000
            endRow = endRow + 1000
        Next
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...