VBA Преобразование строки y = f (x1, x2 ...) в Double? - PullRequest
0 голосов
/ 06 октября 2018

Прежде всего, я не знаю, возможно ли это сделать в VBA или нет, но я потратил почти четыре часа на поиски без удачи.Я делаю проект с Excel VBA для создания макроса, который может вычислять любую y = f (x) функцию, которая содержит несколько x -переменных, которые пользователь может ввести в InputBoxкак таковой;

InputBox

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

Dim f As String
f = InputBox(Prompt:="Please input your function" & Chr(13) & Chr(13) & 
Chr(13) & Chr(13) & "y =")
Cells(1,1) = "y = " + f

Теперь проблема в том, что я хочу использовать это y = f (x1, x2 ...) , которое пользователь ввел в InputBox для определения переменной y как функция x , как вы обычно делаете в VBA.Тем не менее, переменные будут некоторыми n -мерными векторами случайных чисел, поэтому они должны быть определены как таковые, например;

Dim x1() As Double, x2() As Double, x3() As Double
Dim y() As Double, n As Long
... Randomize and defining x variables ...

ReDim y(1 To n, 1 To 1)
For i = 1 To n
y(i,1)=x1(i,1) + x2(i,1) + x3(i,1)
Next i

Здесь ожидаемое значение x и n определяются самим пользователем в отдельном поле ввода.

Теперь вместо ввода y (i, 1) =x1 (i, 1) + x2 (i, 1) + x3 (i, 1) самостоятельно в модуле, я хочу, чтобы программа могла читать и определять y от пользователявведенная формула, поэтому, если пользователь изменит y = f (x) , программа автоматически изменит свою формулу y , таким образом, она сможет рассчитывать различные формулы безПользователь должен открыть модуль и изменить его изнутри.

Пожалуйста, скажите мне, если это возможно или может быть слишком сложно, я буду благодарен за любой вклад, который вы, ребята, могли бы дать мне.Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...