我有四个单元合并在一起:两列和两行。我需要只将列与单独的行合并在一起(最后得到2个单元格)。
我怎么在vba中这样做?我知道.MergeCells = False
选项,但它看起来像将所有细胞分开。
答案 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