Excel-VBA:创建接受数学方程的函数

时间:2016-06-20 14:29:47

标签: excel vba excel-vba

这是我的问题:我想创建一个带X的函数,并将其放入函数中的等式中。

我认为脚本总是这样:

 Function Myfunction(x As Integer)
   Myfunction = <EQUATION like 2*x>
 End Function

我需要做的是将等式放在单元格中作为文本,Myfunction将接受它。所以,等式一直在变化。

2 个答案:

答案 0 :(得分:2)

查看Evaluate功能 - 请参阅此代码示例:

Option Explicit

Sub Test()
    Debug.Print EvalForX("(2+X)*44", 14)
    Debug.Print EvalForX("X^3", 22)
    Debug.Print EvalForX("(X+10)*(X-3)", 7)
    Debug.Print EvalForX("X", 12)
End Sub

Function EvalForX(ByVal strEquation As String, ByVal intX As Integer) As Double
    EvalForX = Evaluate(Replace(strEquation, "X", CStr(intX), 1, -1, vbTextCompare))
End Function

这将输出:

 704 
 10648 
 68 
 12 

可以在工作表中用作用户定义函数:

enter image description here

答案 1 :(得分:0)

这是最终解决方案

EvalForX =评估(替换(替换(strEquation,&#34; X&#34;,CStr(intX),1,-1,vbTextCompare),&#34;,&#34;,&#34;。 &#34;,1,-1,vbTextCompare))