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

时间:2012-02-23 05:04:08

标签: excel vba merge cell

如何在vba中获取具有范围地址的excel的合并单元格的值,例如“$ B $ 4:$ B $ 11”

3 个答案:

答案 0 :(得分:36)

即使真的不鼓励在Excel中使用合并单元格(例如,如果需要也使用Center Across Selection),“包含”该值的单元格是左上角的单元格(至少,这是一种表达方式)。

因此,您可以通过多种方式获取范围B4:B11中合并单元格的值:

  • Range("B4").Value
  • Range("B4:B11").Cells(1).Value
  • Range("B4:B11").Cells(1,1).Value

您还可以注意到所有其他单元格中没有任何值。在调试时,您可以看到值为empty

另请注意,Range("B4:B11").Value将无效(如果您尝试Debug.Print,则会引发执行错误号13),因为它会返回一个数组。

答案 1 :(得分:25)

Josh Brown(评论中)给出了我认为最好的答案:

当我不知道合并区域的边界时,我得到

的值
Range("B6").MergeArea.Cells(1,1).Value

例如,当您循环浏览可能已合并未知范围单元格的文件时,这在VBA中很有用,因此您可以使用此方法更加通用。谢谢Josh!

答案 2 :(得分:0)

这可以分两步完成:

首先命名合并单元格的范围;突出显示合并的单元格,然后转到功能区栏:Formulas Tab --> Define Name;

确保名称中没有空格。示例:defined_Name。转到您希望查看输出/结果的所需单元格。在该单元格中,键入:=defined_Name

按完回来,因为你完成了。