如何使用vba for excel在其他工作簿中获取已定义名称的值

如何使用vba for excel在其他工作簿中获取已定义名称的值,excel,named-ranges,vba,Excel,Named Ranges,Vba,我有几本包含计算的工作簿,我正在结合所有这些表中的数据进行“自动概述”。要查找数据,我使用命名范围。这些很好用。 但是,有一个定义的名称没有引用范围。这是一个公式 我想要的是从我的概述书中访问该公式的结果(在打开的计算书中) 显然,wb.Names(“myNamedFormula”).referestorange不起作用,因为名称没有引用范围。 wb.Names(“myNamedFormula”).Value给出了公式,但没有给出结果。名称的任何成员都不会得到结果。 我尝试使用Evaluate(

我有几本包含计算的工作簿,我正在结合所有这些表中的数据进行“自动概述”。要查找数据,我使用命名范围。这些很好用。
但是,有一个定义的名称没有引用范围。这是一个公式

我想要的是从我的概述书中访问该公式的结果(在打开的计算书中)

显然,
wb.Names(“myNamedFormula”).referestorange
不起作用,因为名称没有引用范围。
wb.Names(“myNamedFormula”).Value
给出了公式,但没有给出结果。名称的任何成员都不会得到结果。
我尝试使用
Evaluate(…)
评估公式,但这不起作用,因为它应该在其他工作簿中评估

有人知道如何得到结果吗

谢谢


ps:我知道一种可能是让名称引用一个范围,然后在那里进行计算,但我不希望这样。

这有点模糊,但是:

将公式添加到计算wb
=MyNamedFormula
中的单元格中(假设表1中的单元格A1为示例)

在计算wb
PointsToMyNamedFormula
中添加一个名称,该名称引用
Sheet1!A1


然后您可以引用wb.Names(“PointsToMyNamedFormula”).referestorange.Value1

这是一个有点模糊的地方,但是:

将公式添加到计算wb
=MyNamedFormula
中的单元格中(假设表1中的单元格A1为示例)

在计算wb
PointsToMyNamedFormula
中添加一个名称,该名称引用
Sheet1!A1


然后您可以引用wb.Names(“PointsToMyNamedFormula”).referestorange.Value1

我认为您必须使用工作表.Evaluate而不是Application.Evaluate(请注意,命名公式中的所有引用都应该是完全限定的绝对引用)。请尝试此语法进行评估

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

我认为您必须使用工作表.Evaluate而不是Application.Evaluate(请注意,命名公式中的所有引用都应该是完全限定的绝对引用)。请尝试此语法进行评估

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

你能把你的配方贴出来吗?我在玩这个,没有任何问题。你能发布你的公式吗?我在玩这个游戏,没有遇到你的任何问题。