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

从excel在vba中的单元格地址获取合并单元格的值,excel,vba,merge,cell,Excel,Vba,Merge,Cell,如何获取excel的合并单元格的值,该单元格的范围地址在vba中类似“$B$4:$B$11”即使确实不鼓励在excel中使用合并单元格(例如,如果需要使用),但“包含”值的单元格是左上方的单元格(至少,这是一种表达方式) 因此,您可以通过多种方式获得范围B4:B11中合并单元格的值: 范围(“B4”).值 范围(“B4:B11”)。单元格(1)。值 范围(“B4:B11”)。单元格(1,1)。值 您还可以注意到,所有其他单元格中都没有值。调试时,您可以看到该值为空 还请注意,Range(“B

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

即使确实不鼓励在excel中使用合并单元格(例如,如果需要使用),但“包含”值的单元格是左上方的单元格(至少,这是一种表达方式)

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

  • 范围(“B4”).值
  • 范围(“B4:B11”)。单元格(1)。值
  • 范围(“B4:B11”)。单元格(1,1)。值
您还可以注意到,所有其他单元格中都没有值。调试时,您可以看到该值为

还请注意,
Range(“B4:B11”).Value
不起作用(如果您尝试
Debug.Print
it,则会引发执行错误号13),因为它返回一个数组。

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


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

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

例如,在VBA中,当您在可能合并了未知范围单元格的文件中循环时,这会很有帮助,因此您可以更一般地使用此方法。谢谢你,乔希

这可以通过两个步骤完成:

第一个名称合并单元格的范围;高亮显示合并的单元格,然后在功能区栏上转到:
公式选项卡-->定义名称

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


按enter键,因为您的操作已完成

我想是Excel吧?值得添加为标记…
Range(“B4:B11”).Cells(1).Value
?当我不知道合并区域的边界时,我会使用
Range(“B6”).MergeArea.Cells(1,1).Value获得值,这是一个很好的提示!另外:
范围(“B4:B11”)。第(1)项。值
,或者简单地说,
范围(“B4:B11”)(1)。值
这与VBA无关。此外,使用VBA时,您可能不知道合并的单元格在哪里或其边界是什么。