所以我几天前问了一个类似的问题,但我没有得到满意的答案。
我想问一下使用写在用户定义的单元格上的函数,例如:
log(x)+2x+exp(x)
写在单元格A1上。
那么如何在VBA编辑器中将此字符串用作函数语法?
答案 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}} ..