Могу ли я создать уравнение на основе введенной пользователем формулы в пользовательской форме? - PullRequest
0 голосов
/ 14 апреля 2019

Я создаю пользовательскую форму в Excel, где пользователю необходимо сначала ввести параметры, необходимые для вычислений, которые я предварительно кодировал. Тем не менее, будут вычисления, которые зависят от пользователя. Для расчетов потребуются те же параметры, которые были введены пользователем, поэтому я могу просто использовать имя текстового поля в качестве ссылки, но я не могу представить себе код, который распознает, что введенная формула является уравнением, которое он будет использовать.

Мои конечные пользователи настолько широки, насколько это возможно, я создаю файл excel, который настолько универсален, насколько это возможно, чтобы я мог его получить. Большинство вычислений являются общими для всех пользователей, поэтому я могу их кодировать, прежде чем они будут его использовать.

Я еще ничего не пробовал, так как пока не знаю, как создать код для решения моей проблемы.

1 Ответ

0 голосов
/ 14 апреля 2019
  1. введите формулу в виде String
  2. вставить ведущий "="
  3. изменить параметры при необходимости
  4. либо Evaluate() формула и использовать результат или
  5. поместите формулу в ячейку

    Sub UserSuppliedEquation()
    Dim v As Variant, sForm As String
    
    sForm = Application.InputBox(Prompt:="Enter Formula without leading equal sign", Type:=2)
    sForm = "=" & sForm
    
    v = Evaluate(sForm)
    MsgBox v & vbCrLf & sForm
    Range("B9").Formula = sForm
    End Sub
    



enter image description here

...