簡體   English   中英

如何使用vba for excel獲取另一個工作簿中定義名稱的值

[英]how to get the value of a defined name in another workbook, using vba for excel

我有幾本包含計算的工作簿,我正在制作一個“自動概覽”,將所有這些工作表中的數據結合起來。 為了查找數據,我使用命名范圍。 這些工作正常。
但是,有一個定義的名稱不涉及范圍。 它是一個公式。

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

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

有誰知道如何得到結果?

謝謝,

ps:我知道一種可能性是讓名稱引用一個范圍,然后在那里進行計算,但我不想要那樣。

我認為您將不得不使用 Worksheet.Evaluate 而不是 Application.evaluate (注意命名公式中的所有引用都應該是完全限定的絕對引用)。 嘗試使用此語法進行評估

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

這有點混亂,但是:

將公式添加到計算中的單元格 wb =MyNamedFormula (讓我們假設作為 Sheet1 上的單元格 A1 的示例)

在計算 wb PointsToMyNamedFormula中添加一個名稱,引用Sheet1!A1

然后你可以參考wb.Names("PointsToMyNamedFormula").RefersToRange.Value1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM