访问Excel VBA中的命名单元格的值(内容)
这个
Dim WB As Workbook Set WB = Workbooks.Open("foo\bar.xlsx", , True) Debug.Print (WB.Names("named_cell").Value) WB.Close (False)
回报
='Sheet'!$C$377
而不是单元格C377
中的值。
我怎样才能接收细胞的价值呢?
如果WB.Names("named_cell")
返回一个Name
对象,那么这个对象就有一个RefersToRange
属性。 这将返回由Name对象引用的Range对象。 请参阅https://msdn.microsoft.com/zh-cn/library/office/ff834918.aspx 。
所以
Debug.Print WB.Names("named_cell").RefersToRange.Value
另请参阅打开其他excel文件时Excel-VBA自带function的故障 。
几种方法:
Debug.Print Range("Named_Range").Value Debug.Print [Named_Range].Value '// This uses the evaluate method
如果工作簿位于活动工作簿中,则不需要使用工作表对象命名范围(它应该是您打开的最后一个工作簿)。
一旦build立了命名范围,Excel就知道它的Parent
,所以:
Sub dural() Dim r As Range Set r = Range("named_cell") MsgBox r.Parent.Name & vbCrLf & r.Address(0, 0) & vbCrLf & r.Value End Sub
是获得有关这个范围的信息的一种方法:
这使用Range对象的属性而不是Workbook对象。