我正在制作一个用户表单,我想从四个函数 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:在以下链接中工作簿,您可以找到包含我正在处理的代码的工作簿。如果省略与验证相关的行,则完整代码可以完美运行,但是,它将缺少对每个文本框中输入的数据的验证,以验证它们是否是有效条目。