繁体   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