仅针对行取消合并单元格

时间:2017-05-25 07:57:46

标签: vba excel-vba excel

我有四个单元合并在一起:两列和两行。我需要只将列与单独的行合并在一起(最后得到2个单元格)。

我怎么在vba中这样做?我知道.MergeCells = False选项,但它看起来像将所有细胞分开。

2 个答案:

答案 0 :(得分:0)

喜欢@Prisoner建议

假设四个合并的单元格如下:

A1    B1
A2    B2

您的代码变为:

Range("A1:B2").MergeCells = False
Range("A1:B1").MergeCells = True
Range("A2:B2").MergeCells = True

答案 1 :(得分:0)

以下vba宏将给定区域合并为单独的合并行。 所以合并的2x2区域是这样的:

┌    ─    ┐
  A1   B1
│         │
  A2   B2
└    ─    ┘

将合并为单独的行:

┌    ─    ┐
  A1   B1
├    ─    ┤
  A2   B2
└    ─    ┘

宏的调用如下:

MergedAreaToRows rngMergedArea:=Range("A1:B2")

它非常通用,因此它可以将行和列的每个组合合并到各个行中。

Sub MergedAreaToRows(ByRef rngMergedArea As Range)

    'do it only if area consists of more than a cell
    If rngMergedArea.Cells.Count > 1 Then

        'unmerge area
        rngMergedArea.UnMerge

        'only if more than one column -> need to merge again
        If rngMergedArea.Columns.Count > 1 Then

            'iterate through rows
            Dim intRow As Integer
            For intRow = 1 To rngMergedArea.Rows.Count

                'merge area by rows again
                rngMergedArea.Rows(intRow).Merge

            Next intRow

        End If

    End If

End Sub