如何在另一个工作簿中获取已定义名称的值,使用vba for excel
我有几个包含计算的工作簿,我正在制作一个“自动概览”,结合所有这些表中的数据。 要find我使用命名范围的数据。 这些工作正常。
但是有一个定义的名称不涉及范围。 这是一个公式。
我想要的是从我的概述书中访问该公式的结果(在打开的计算书中)。
很明显, 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