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

时间:2017-02-03 07:39:37

标签: excel-vba vba excel

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

我想问一下使用写在用户定义的单元格上的函数,例如:

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

写在单元格A1上。

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

1 个答案:

答案 0 :(得分:1)

您可以将x替换为某个值,然后使用Application.Evaluate

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

测试和使用

假设您已在sheet1,Cell x^2+2中输入等式A1。您可以通过以下方式评估x=2

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

输出:6

ps:因为x是一个字母,可以出现在任何地方的方程内(不仅仅是形式参数),我们应该为形式参数使用不同的(罕见)组合,例如{{ 1}} ..