在Excel VBA函数中使用用户输入的公式?

时间:2018-12-02 22:31:19

标签: excel vba excel-vba excel-formula

Excel VBA编码的新增功能。我目前在尝试使用用户输入的函数时遇到问题(例如“ x ^ 2 + 2y ^ 2 + 4”。我的VBA程序中有一个函数需要提取此公式我遇到的问题是当我在公式中使用输入框时,数据类型是变量,因此由于数据类型错误而无法对函数求值,这是我遇到的问题。提取用户输入的公式并将其用作VBA中的函数?

1 个答案:

答案 0 :(得分:1)

您需要的是Evaluate()函数:

Sub CalcFunc()
    Dim func As String, xValue, yValue, newFunc As String

    Const DEFAULT_FUNC = "x^2+2*y^2+4"
    func = "=" & InputBox("Enter function:", , DEFAULT_FUNC)
    xValue = InputBox("XValue:")
    yValue = InputBox("YValue:")
    newFunc = Replace(Replace(func, "x", xValue), "y", yValue)

    MsgBox "Function: " & func & vbCrLf & "X: " & xValue & vbCrLf & "Y: " & yValue & vbCrLf & "Answer: " & Application.Evaluate(newFunc)
End Sub