所以我几天前问过一个类似的问题,但我没有得到令人满意的答案。
我想询问有关使用在用户定义的单元格上编写的函数的问题,例如:
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
.。