检查文本框中无效值的缺点

检查文本框中无效值的缺点

我正在制作一个用户表单,我想从四个函数 fi(x) 的输入数据执行回归分析,这些数据记录在每个相应的文本框中。

图片1

为了检查输入函数是否有效,我提出了两个条件,第一个条件是验证所有文本框均不为空(这有效):

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

相关内容