2012-07-19 62 views
1

我有幾個包含計算的工作簿,我正在組合所有這些工作表中的數據進行「自動概覽」。要找到我使用命名範圍的數據。這些工作正常。
但是有一個定義的名稱不涉及範圍。這是一個公式。如何在另一個工作簿中使用vba獲取已定義名稱的值,使用vba for excel

我想要的是從我的概覽書中訪問該公式的結果(在打開計算書)中的結果。

顯然wb.Names("myNamedFormula").RefersToRange不起作用,因爲名稱沒有引用範圍。
wb.Names("myNamedFormula").Value給我的公式,但不是結果。名字的成員都沒有得到結果。
我嘗試使用Evaluate(...)評估公式,但這不起作用,因爲它應該在其他工作簿中進行評估。

有誰知道如何得到結果?

感謝,

PS:我知道一個可能性是使名稱是指一個範圍,然後做計算,但我不希望這樣。

+0

你可以發佈你的公式是什麼?我正在玩這個,並沒有遇到任何問題。 – 2012-07-19 13:42:45

回答

3

我認爲你將不得不使用Worksheet.Evaluate而非Application.evaluate(註名稱公式中的所有引用都應該是完全限定的絕對引用)。嘗試此語法評估

ansa = Workbooks("Book1.xlsb").Worksheets(1).Evaluate(Workbooks("Book1.xlsb").Names("AddNumbers").RefersTo) 
2

這是有點cludge的,但:

至細胞添加分子式在計算WB =MyNamedFormula(讓我們假設作爲Sheet 1上的示例性小區A1)

添加名稱在計算WB PointsToMyNamedFormula是指Sheet1!A1

那麼你可以參考wb.Names("PointsToMyNamedFormula").RefersToRange.Value1

相關問題