在VBA EXCEL中使用数学方程输入值进行数学计算

在VBA EXCEL中使用数学方程输入值进行数学计算,vba,excel,math,integral,Vba,Excel,Math,Integral,我在Excel VBA中进行数值积分,我想从用户那里得到方程,而不是将其插入单元格中 范例 用户给我x^3+x^2+2,这是F(x) 在A1中,我有数字2,我在B1中计算F(X) 如何告诉excel用户输入的方程式为=A1^3+A2^2+2。我只需要转换成一个细胞 我正在使用Val(InputBox()) 感谢您的帮助此函数可以解析从用户处收到的公式,但您必须找到某种方法将x转换为可以正确理解的单元格引用。这可能需要工作表名称 您的x^3+x^2+2示例将两个x值替换为A1和A2。最好是x^3+

我在Excel VBA中进行数值积分,我想从用户那里得到方程,而不是将其插入单元格中

范例

用户给我x^3+x^2+2,这是F(x)

在A1中,我有数字2,我在B1中计算F(X)

如何告诉excel用户输入的方程式为=A1^3+A2^2+2。我只需要转换成一个细胞

我正在使用Val(InputBox())

感谢您的帮助

此函数可以解析从用户处收到的公式,但您必须找到某种方法将x转换为可以正确理解的单元格引用。这可能需要工作表名称

您的x^3+x^2+2示例将两个x值替换为A1和A2。最好是x^3+y^2+2,这样A1和A2之间就不会有歧义

Sub f_of_x_and_y()
    Dim fmla As String, str As String

    fmla = InputBox("enter formula")

    With Worksheets("Sheet2")
        str = Replace(Replace(fmla, "x", .Range("A1").Address(external:=True)), _
                                    "y", .Range("A2").Address(external:=True))
        .Range("A3") = Application.Evaluate(str)
    End With

End Sub

如果用户输入x或x,而您只需要将x替换为A1.cell.value,则使用此选项:

Sub test()
formula_user = InputBox("Please type formula")
Range("B1").Formula = "=" & Replace(LCase(formula_user), "x", "A1")
End Sub
用户输入框公式中的x替换为A1。在用户输入中可以是大写或小写

您可以用字符串“A1”替换所有的“x”。别忘了在前面加上“=”

Sub variable_input()
Dim userFormula$
Dim myVar&

myVar = 2
userFormula = InputBox("What is the formula?")
Debug.Print userFormula
userFormula = Replace(userFormula, "x", myVar)
Debug.Print userFormula

Dim theAnswer$
theAnswer = Val(userFormula)
Debug.Print theAnswer
End Sub
Sub TestUserEquation()

    Dim strUserEquation As String

    strUserEquation = LCase(InputBox("Please enter your equation:", "Equation InputBox"))

    If strUserEquation <> "" Then
        Cells(1, 2) = "=" & Replace(strUserEquation, "x", "A1")
    Else
        Cells(1, 2) = "No equation entered."
    End If


End Sub
子测试用户方程()
作为字符串的Dim Struster方程
strUserEquation=LCase(输入框(“请输入您的方程式:”,“方程式输入框”))
如果表达式为“”,则
单元格(1,2)=“=”和替换(struer公式,“x”,“A1”)
其他的
单元格(1,2)=“未输入方程式。”
如果结束
端接头

到目前为止,您有哪些代码?请发布它,以便a)如果您已经有代码,我们不会重新发明轮子;b)向我们展示您尝试过的内容;c)可以发现任何潜在错误。我不认为这会太难,因为你在VBA中,只要把变量插入用户给出的公式中就行了,不?你为什么不按照学校数学老师告诉我们的做,用
A1
中的数字替换
x
。类似于
Replace(“x^3+x^2+2”、“x”,Range(“A1”).Value)
。没有什么比周日早上在VBA中问一个关于数学方程的问题更能让大家恼火的了!事实上,他帮了我的忙。谢谢你的回复,拉尔夫!谢谢!这有助于完成我的定量方法项目jeje。是时候做用户手册了。如果用户写exp(x)+2*x,结果是eA1p(A1)+2*A1。我找到了,我要告诉用户/老师,在使用指数公式的情况下,将公式写为exp(x)+2*x。在这种情况下,我删除了LCase,因此代码区分了X和xThanks!实际上,这将帮助用户查看他编写的公式如果用户编写exp(x)+2*x会发生什么