Excel Vlookup to Return Formula除了具有间接功能外,还可以使用

时间:2017-08-18 17:35:03

标签: excel excel-vba function vlookup formulas vba

我需要创建一个vlookup来返回一个公式然后评估它返回的公式。我查了一下,发现这个link让我在那里走了一半。

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

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

然后,我可以使用Eval返回一个公式并对其进行评估。当我返回一个正常的公式,但是当我将一个间接函数放入返回的公式时,它会停止工作。我需要Indirect函数,因为最终会使用它的工作簿,我不知道它将在哪一行。

我所包含的workbook显示基本公式(作品),公式替换为间接函数(作品),Vlookup找到公式(作品),Eval用Vlookup显示公式结果(作品),具有间接公式的Eval(不起作用),使用vlookup的Eval显示具有间接结果的公式(不工作)

所以当添加间接功能时,eval功能会停止工作。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用INDEX而不是INDIRECT。

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

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

enter image description here

我还会使用Application.Caller.Parent.Evaluate来确保正在使用正确的工作表。

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