Как объединить несколько отдельных листов в книге Excel, имеющих один и тот же формат (но разную длину)?

У меня есть унаследованная (а иногда и обновляемая) книга со множеством листов (на данный момент более 50).

На каждой из этих вкладок есть таблица в формате:

      segment_name | subsegment | subnet       | ipaddress
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ASD          | ASD-FGH    | 10.10.10     | 10.10.10.17-40
             | ASD-JKL    | 192.168.100  | 192.168.100.50-200

КлеткиA1черезD1всегда называются одним и тем же на каждой вкладке, всегда в одном и том же порядке.

является объединенной ячейкой высотой всей таблицы (не все имеют одинаковую высоту)

A2также совпадает с именем вкладки/листа (например, ASD, DFG, GHJ и т. д.)

Если бы это был разовый случай, я бы вручную скопировал/вставил содержимое таблицы каждой вкладки в новый лист, разъединил объединенные ячейки, заполнил пустые места и продолжил бы свою жизнь.

Однако, поскольку исходная книга периодически обновляется /изменяется (добавляются, удаляются новые IP-адреса/диапазоны IP-адресов и т. д.), мне нужен способ перестроить упрощенный формат (который в конечном итоге преобразуется в таблицу поиска CSV для Splunk) из источник по требованию

Я предполагаю, что есть умный (или даже не очень умный) способ сделать это с помощью макроса Excel / VBA. Однако я не уверен, как это сделать.

Логика должна выглядеть примерно так:

      create tempsheet
foreach worksheet as currentsheet
    if currentsheet.A1="segment_name"
        append all rows from currentsheet.B -> currentsheet.last-populated to the end of tempsheet
    else
       advance to next worksheet

Как это будет выглядеть в VBA?

Есть ли лучший/более простой способ сделать это?

0 ответов

Другие вопросы по тегам