计算合并单元格的行数

我有一个问题,在Excel中计算每个合并单元块的行数。

我对A1有价值。 如果我合并单元格A1到A4,则数值显示为居中,范围A1-A4。 那么我在A5有另一个价值。 如果我将单元格A5合并到A12,则此第二个值将显示在第二个单元格块的中心。

我想要的是统计每个合并单元块的行数。

我曾尝试使用VBA编程来检测这些行数,function“MergeArea”和“CurrentRegion.Count”,但程序检测到这两个块是连续的,计数12行,而不是4,然后8。首先,我可以把正确的指令放在循环中,然后检测“8”。

在VBA方面,合并单元格有几个缺点,但这是一个简单的方法。

我的表看起来像这样:

在这里输入图像说明

码:

Sub CountMergedRows() For i = 1 To 20 RowCount = Range("A" & i).MergeArea.Rows.Count If RowCount > 1 Then MsgBox ("Cell [A" & i & "] has " & RowCount & " merged rows") i = i + RowCount End If Next i End Sub 

结果是两个消息框,如下所示:

在这里输入图像说明

在这里输入图像说明

方法Range("A" & i).MergeArea.Rows.Count由Portland Runnerbuild议工作正常,但是函数的逻辑略有不正确,因为错过了, Next也增加了i ,所以写得更加正确:

 Sub CountMergedRows() For i = 1 To 20 RowCount = Range("A" & i).MergeArea.Rows.Count If RowCount > 1 Then MsgBox ("Cell [A" & i & "] has " & RowCount & " merged rows") i = i + RowCount - 1 'note -1 here End If Next i End Sub