如果同一行合并到不同的列中,则宏将合并同一列中的单元格

如果同一行合并到不同的列中,则宏将合并同一列中的单元格

如果同一行已合并到另一列,我需要帮助找到一个可以跨行合并单元格的宏。下面是我现在拥有的屏幕截图,显示了在列中合并的单元格A

前

下面的屏幕截图是我需要的电子表格在宏运行后的样子;列中的相应单元格B被合并。

后

答案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

相关内容