如何在VBA中查找范围是否包含合并的单元格

Ber*_*eer 2 excel merge vba range

我有一个包含值班的 Excel 文档。我想找出在给定范围内是否有任何如下所示的合并单元格..

例子

如何确定在给定范围内填充单元格或在给定范围内合并单元格?

If IsEmpty(Range("NewRange")) = False Then
    z = z + 1 'My counter 
End If
Run Code Online (Sandbox Code Playgroud)

我尝试了 IsEmpty 函数,但它在合并的单元格上无法正常工作。你可以试试,但结果是一样的..虽然我在那里得到了一块空单元格,但它算作已填满..

Mac*_*Los 6

MS Excel 2010 及更高版本具有Range.MergeCells 属性 (Excel),如果该区域包含合并的单元格,则返回true

您可以在这里找到另一种方法:http : //www.exceltrick.com/how_to/find-merged-cells-in-excel/

Dim r As Range
Set r = Range("A9:G10")
With r
    If IsNull(.MergeCells) = True Or .MergeCells = True Then
        z = z + 1
    End If
End With
Run Code Online (Sandbox Code Playgroud)

  • 实际上,只有在合并范围内的所有单元格时才返回 True。如果存在混合,则返回 Null。 (3认同)