2016-05-11 14 views
5

このアクセス値のExcel VBAの名前付きセル(内容)

Dim WB As Workbook 
Set WB = Workbooks.Open("foo\bar.xlsx", , True) 
Debug.Print (WB.Names("named_cell").Value) 
WB.Close (False) 

戻りセルC377

='Sheet'!$C$377 

代わりの値。

代わりにセルの値を受け取ることはできますか?方法の

+2

代わりに 'Debug.Print(WB.Worksheets(" NameOfSheet ")。Range(" named_cell ")。Value)'を試してください。 – Ralph

+0

ありがとう!これは機能します。しかし、シート名を指定せずに名前付き範囲の参照にアクセスできるのは少し奇妙ですが、内容はありません。本当に方法はありますか? – speendo

答えて

4

WB.Names("named_cell")Nameオブジェクトを返す場合、このオブジェクトはRefersToRangeプロパティを持ちます。これは、Nameオブジェクトによって参照されるRangeオブジェクトを返します。 https://msdn.microsoft.com/en-us/library/office/ff834918.aspxを参照してください。

ので

Debug.Print WB.Names("named_cell").RefersToRange.Value 

Malfunction of Excel-VBA own function when open other excel-file参照してください。

+0

それだけです!ありがとうございました! – speendo

3

カップル:

Debug.Print Range("Named_Range").Value 
Debug.Print [Named_Range].Value '// This uses the evaluate method 

それは(それはあなたが最後に開いたブックだとしてそれがあるべき)アクティブなブックにだ場合は、シートオブジェクトと名前付き範囲を修飾する必要はありません。

1

名前付き範囲が確立されると、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 

は、この範囲についての情報を得るための一つの方法です:

enter image description here

これは、のプロパティを使用しています範囲オブジェクトワークブックオブジェクトではなくオブジェクト。

関連する問題