Используя введенную пользователем формулу в функции Excel VBA? - PullRequest
0 голосов
/ 03 декабря 2018

Очень новый для Excel VBA кодирования.В настоящее время у меня возникла проблема, так как я пытаюсь использовать функцию, введенную пользователем (например, «x ^ 2 + 2y ^ 2 + 4»). В моей программе VBA есть функция, которая должна получить эту формулуиз электронной таблицы, чтобы он мог оценить его по разным значениям. Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую поле ввода для формулы, тип данных является вариантным, поэтому функция не может быть оценена, так как тип данных неправильный. Что я могу сделатьвывести введенную пользователем формулу и использовать ее в качестве моей функции в VBA?

1 Ответ

0 голосов
/ 03 декабря 2018

Вам нужна функция 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...