Как объединить несколько отдельных листов в книге 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?
Есть ли лучший/более простой способ сделать это?