【问题标题】: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 是如何定义的?是否要检查任意范围是否有合并单元格?

标签: vba excel merge 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 - 如果是,则存在合并单元格。
  • 您也许应该在原始问题的某处提到这一点...... ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2018-01-18
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多