如何在vba中获取具有范围地址的excel的合并单元格的值,例如“$ B $ 4:$ B $ 11”
答案 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
。
按完回来,因为你完成了。