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

Posted

技术标签:

【中文标题】如何查找范围是不是包含VBA中的合并单元格【英文标题】:How to find if range contains merged cells in VBA如何查找范围是否包含VBA中的合并单元格 【发布时间】:2015-04-13 07:33:44 【问题描述】:

我有一个包含轮班的 Excel 文档。我想知道在给定的范围内是否有像下面给出的任何合并单元格..

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

If IsEmpty(Range("NewRange")) = False Then
    z = z + 1 'My counter 
End If

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

【问题讨论】:

given range 是如何定义的?是否要检查任意范围是否有合并单元格? 【参考方案1】:

MS Excel 2010 及更高版本具有Range.MergeCells Property (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

【讨论】:

其实只有在合并范围内的所有单元格时才返回True。如果有混合,则返回 Null。 谢谢,很高兴知道。 MSDN 文档没有提到这一点。所以,第二个链接可能会有所帮助;) 是的,我试过了,但没有!这不是解决方案。还是谢谢。 怎么不是解决方案?测试mergecells 是否为 Null 或 True - 如果是,则存在合并单元格。 您也许应该在原始问题的某处提到这一点...... ;)

以上是关于如何查找范围是不是包含VBA中的合并单元格的主要内容,如果未能解决你的问题,请参考以下文章

从 vba 中的单元格地址获取 excel 合并单元格的值

使用 MergeArea 检测 VBA Excel 中的合并单元格

检查合并的单元格是不是为空白

Excel 2010:如何以公式方式计算包含合并单元格的范围内的单元格总数?

VBA怎样取到查找到的单元格位置

根据单元格值合并范围内的单元格,但最后一个单元格没有被合并