【发布时间】:2020-10-12 14:06:28
【问题描述】:
我正在使用一个简单的 excel UDF 来评估一个字符串作为一个公式。
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
字符串存储在由会计维护的数据表中,我正在使用 power query 将其放入边距表中。我的问题是用户有可能同时打开多个工作簿。有没有办法阻止它尝试根据另一张表重新计算?
我想得越多,我就越意识到我应该让他们将公式存储为公式并使用“显示公式”按钮。
但我仍然很想知道我的问题是否有答案。
【问题讨论】:
-
如果您从单元格中调用它,请尝试
Eval = Application.ThisCell.Parent.Evaluate(Ref)。 -
@BigBen - 这行得通。谢谢。
-
@BigBen:超级有趣……我对
ThisCell一无所知。我一直在使用:Eval = Application.Caller.Parent.Evaluate(Ref). -
@FaneDuru - 是的,
Application.Caller是另一种方法 -
@BigBen:我只是想强调一下,我从来没有听说过
ThisCell,能够在这种情况下使用......这并不意味着没有很多其他Excel问题我从来没有听说过。 :)
标签: excel vba user-defined-functions