Excel VBA Объединение нескольких групп ячеек одновременно - PullRequest
0 голосов
/ 01 декабря 2018

Вот код, который у меня есть:

Sub test()

Dim Mail As Range, Phys As Range, Books As Range, Records As Range

Set Mail = Range("A1:A3")
Set Phys = Range("B1:B3")
Set Books = Range("A4:D4")
Set Records = Range("C1:D3")

Union(Mail, Phys, Books, Records).Merge

End Sub

Этот код создает одну объединенную ячейку A1: D4 - я хотел бы объединить A1: A3, B1: B3 и т. Д., Чтобы было 4 объединенных ячейки,

Единственное решение, которое я могу придумать, - это .merge каждый диапазон в отдельности:

Mail.Merge
Phys.Merge
Books.Merge
Records.Merge
... etc

Но я думаю, что должен быть лучший способ!

1 Ответ

0 голосов
/ 01 декабря 2018

Зачем что-то усложнять?Вы можете просто объединить ячейки, как вы указали в своем вопросе (см. Sub: OCCAMS_RAZOR).Если вы хотите сделать что-то более сложное, , что превышает IMO , вы можете перебрать массив с предопределенными диапазонами для объединения (см. Sub: OVER_KILL).

Реальный вопрос в том, зачем вам нужны эти диапазоны для объединения?

Как упомянуто @BruceWayne, стоимость объединения ячееквысокий, когда дело доходит до анализа / резюме.Объединенные ячейки мешают простым ссылкам на ячейки, формулам и VBA.Они также удаляют возможность суммирования данных в таблицах / сводках - это означает, что графики должны быть построены вручную.Дело в том, что есть много минусов, которые необходимо учитывать.


Sub OCCAMS_RAZOR()

Dim Mail As Range, Phys As Range, Books As Range, Records As Range

Set Mail = Range("A1:A3"): Mail.Merge
Set Phys = Range("B1:B3"): Phys.Merge
Set Books = Range("A4:D4"): Books.Merge
Set Records = Range("C1:D3"): Records.Merge

End Sub

Sub OVER_KILL()

Dim Arr: Arr = Array("A1:A3", "B1:B3", "A4:D4", "C1:D3")
Dim i As Long

For i = LBound(Arr) To UBound(Arr)
    Range(Arr(i)).Merge
Next i

End Sub

На обоих подводных лодках все .Range должны быть квалифицированы с рабочим листом

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