如何将在单元格上编写的函数用作函数语法 (VBA)



所以我几天前问过一个类似的问题,但我没有得到令人满意的答案。

我想询问有关使用在用户定义的单元格上编写的函数的问题,例如:

log(x)+2x+exp(x)

写在单元格 A1 上。

那么如何在VBA编辑器中将此字符串用作函数语法呢?

你可以

用一些值替换x,然后使用Application.Evaluate

Function EvaluateEquation(equation As String, variable As String, value As Double)
    EvaluateEquation = Application.Evaluate _
       (Replace(equation, variable, value))
End Function

测试和使用

假设您已在工作表1,单元格A1中输入了等式x^2+2。您可以通过以下方式评估它x=2

Sub TestIt()
    Dim result As Double
    result = EvaluateEquation(Sheet1.Range("A1").Text, "x", 2)
    Debug.Print result
End Sub

输出:6

PS:由于x是一个可以在方程式内任何地方(不仅在形式参数处)出现的字母,我们应该对形式参数使用不同的(罕见)组合,例如xxx.。

最新更新