【发布时间】:2012-03-13 12:42:05
【问题描述】:
如何在 vba 中获取范围地址如“$B$4:$B$11”的 Excel 合并单元格的值
【问题讨论】:
-
Excel,我猜?值得作为标签添加...
-
Range("B4:B11").Cells(1).Value?
如何在 vba 中获取范围地址如“$B$4:$B$11”的 Excel 合并单元格的值
【问题讨论】:
Range("B4:B11").Cells(1).Value ?
即使真的不鼓励在 Excel 中使用合并单元格(例如,如果需要使用 Center Across Selection),“包含”该值的单元格仍是 左上角(在至少,这是一种表达方式。
因此,您可以通过多种方式获取B4:B11 范围内合并单元格的值:
Range("B4").ValueRange("B4:B11").Cells(1).ValueRange("B4:B11").Cells(1,1).Value您还可以注意到,所有其他单元格都没有任何价值。调试时可以看到值为empty。
另请注意,Range("B4:B11").Value 不起作用(如果您尝试 Debug.Print 它会引发执行错误号 13),因为它返回一个数组。
【讨论】:
Range("B6").MergeArea.Cells(1,1).Value得到值
Range("B4:B11").Item(1).Value,或者简单地说,Range("B4:B11")(1).Value
乔什·布朗(在评论中)给出了我认为最好的答案:
当我不知道合并区域的边界时,我用
获取值Range("B6").MergeArea.Cells(1,1).Value
这在 VBA 中很有帮助,例如,当您循环浏览可能已合并未知范围单元格的文件时,您可以使用此方法更加通用。谢谢乔希!
【讨论】:
这可以分两步完成:
名字合并单元格的范围;突出显示合并的单元格,然后转到功能区栏:Formulas Tab --> Define Name;
确保名称中没有空格。示例:defined_Name。转到您希望查看输出/结果的所需单元格。在该单元格中,输入:=defined_Name。
按回车,因为您完成了。
【讨论】: