从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,因为你完成。