如何使用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

相关内容

  • 没有找到相关文章

最新更新