Excel Vlookup to Return 公式有效,但其中包含间接函数

Excel Vlookup to Return Formula works except with Indirect function in it

我需要创建一个 vlookup,它将 return 一个公式,然后评估它 return 的公式。我查了一下,发现这个 link 让我完成了一半。

我必须将这个用户定义的函数添加到工作簿中:

Function Eval(Ref As String)
     Application.Volatile
     Eval = Evaluate(Ref)
End Function

然后,我可以使用 Eval 来 return 一个公式并计算它。当我 return 一个普通公式时它起作用,但是当我将一个间接函数放入 returned 公式时,它停止工作。我需要间接函数,因为最终将在工作簿中使用它,我不知道它将在哪一行。

我包含的 workbook 显示了一个基本公式(有效),公式替换为间接函数(有效),Vlookup 查找公式(有效),Eval with Vlookup 显示公式结果(有效), 使用间接公式求值(无效),使用 vlookup 求值以显示具有间接结果的公式(无效)

因此,一旦添加了间接函数,eval 函数就会停止工作。我该如何解决这个问题?

使用 INDEX 而不是 INDIRECT。

INDEX(H:H,row())*30

问题是 " 的数量是否正确。

我也会使用 Application.Caller.Parent.Evaluate 来确保使用正确的 sheet。

Function Eval(Ref As String)
     Application.Volatile
     Eval = Application.Caller.Parent.Evaluate(Ref)
End Function