Excel-VBA:创build接受math公式的函数

这是我的问题:我想创build一个函数,它将X放入我的函数中。

我认为剧本将永远是这样的:

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

我需要做的是把方程式放在单元格中作为一个文本,而Myfunction将会把它写成。 所以,这个方程总是在变化。

查看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 

并且可以在工作表中用作用户定义的function:

在这里输入图像说明

这是最终的解决scheme

EvalForX = Evaluate(Replace(Replace(strEquation,“X”,CStr(intX),1,-1,vbTextCompare),“,”,“。”,1,-1,vbTextCompare)