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

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

即使真的不鼓励在Excel中使用合并单元格(如果需要的话,使用Center Across Selection ),包含该值的单元格就是左上angular的单元格(至less这是表示它的方法)。

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

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

你也可以注意到,所有其他的单元格都没有任何价值。 在debugging的时候,你可以看到这个值是empty

还要注意Range("B4:B11").Value将不起作用(如果您尝试执行Debug.Print则会产生执行错误编号13),因为它返回一个数组。

乔希·布朗给了(在评论中)我认为是最好的答案:

当我不知道合并区域的界限时,我会得到价值

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

这对于VBA很有帮助,例如,当您循环可能已经合并了未知范围的单元格的文件时,您可以使用这种方法更通用。 谢谢乔希!

这可以分两步完成:

首先命名合并单元格的范围; 突出显示合并的单元格,然后进入function区栏:“ Formulas Tab --> Define Name;

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

按下input,因为你完成。