2

Мне нужна помощь в поиске макроса, который может объединять ячейки между строками в столбце, если эти же строки уже объединены в другом столбце. Ниже приведен скриншот того, что у меня сейчас есть, где показаны ячейки, объединенные в столбце A

до

На приведенном ниже снимке экрана мне нужно, чтобы таблица выглядела после запуска макроса; соответствующие ячейки в столбце B объединены.

после

1 ответ1

1

Это было самое короткое, что я мог сделать. Я попробовал это на вашем примере, и это сработало для меня.

Sub mergecolumn()

Dim cnt As Integer
Dim rng As Range
Dim str As String

For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    cnt = Cells(i, 1).MergeArea.Count
    Set rng = Range(Cells(i, 2), Cells(i - cnt + 1, 2))

    For Each cl In rng
        If Not IsEmpty(cl) Then str = str + vbNewLine + cl
    Next
    If str <> "" Then str = Right(str, Len(str) - 2)

    Application.DisplayAlerts = False
    rng.Merge
    rng = str
    Application.DisplayAlerts = True

    str = ""
    i = i - cnt + 1
Next i

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .