
Я создаю пользовательскую форму, в которой хочу выполнить регрессионный анализ на основе входных данных для четырех функций fi(x), которые записаны в каждом из соответствующих текстовых полей.
Для проверки корректности входных функций я предложил два условия, первое из которых проверяет, что ни одно из текстовых полей не пусто (это работает):
If p = 1 Then
box = MsgBox("No functions were provided for regression analysis.", vbInformation, "Regression Toolbox Info")
Exit Sub
End If
в то время как во втором случае я хочу проверить, что если какое-либо из введенных значений недопустимо, поскольку оно не является функцией x, то он сообщит мне об этом, например, если введен текст или любая другая цифра, которая не позволяет выполнить вычисления.
For i = 2 To p
If (fxn(i - 1) = "x") Then
ElseIf IsError(Evaluate(Replace(fxn(i - 1), "x", 2))) Then
box = MsgBox("The f" & i - 1 & "(x) input is invalid as it is not a function of x." & _
"Check your data input and correctness of syntaxis of f(x) functions." & _
vbNewLine & vbNewLine & "If you want to type in only x you should type in ""1*x""." & _
vbNewLine & vbNewLine & _
"Several functions with multiplication of x (e.g. fx1 = 1*x, fx2 = 2*x)" & _
"are not allowed.", vbCritical, "Error!")
Exit Sub
ElseIf InStr(fxn(i - 1), "x") = 0 Then
box = MsgBox("The f" & i - 1 & "(x) input is invalid as it is not a function of x", vbCritical, "Error!")
Exit Sub
End If
Next i
Что касается последнего, код, который у меня есть до сих пор, регистрирует сбой, поскольку, несмотря на ввод допустимых функций в каждое из текстовых полей, он выдает мне сообщение о том, что это недопустимый ввод, то есть он принимает любое значение как недопустимый ввод. Я пробовал несколько модификаций строк, но я продолжаю получать одну и ту же ошибку, где я могу сделать ошибку, которая не позволяет мне достичь результата, который я ищу?
Большое спасибо за ваше ценное сотрудничество.
pdt: По следующей ссылкеРабочая тетрадь, вы можете найти Workbook с кодом, над которым я работаю. Если строки, связанные с проверкой, опущены, полный код работает идеально, однако, в нем будет отсутствовать проверка данных, введенных в каждое из текстовых полей, чтобы проверить, являются ли они допустимыми записями или нет.