Nachteile der Überprüfung auf ungültige Werte in einem Textfeld

Nachteile der Überprüfung auf ungültige Werte in einem Textfeld

Ich erstelle ein Benutzerformular, in dem ich eine Regressionsanalyse der Eingabedaten für vier Funktionen fi(x) durchführen möchte, die in den jeweiligen entsprechenden Textfeldern aufgezeichnet sind.

Bild1

Um zu prüfen, ob die Eingabefunktionen gültig sind, habe ich zwei Bedingungen vorgeschlagen. Die erste soll prüfen, ob keines der Textfelder leer ist (das funktioniert):

If p = 1 Then
    box = MsgBox("No functions were provided for regression analysis.", vbInformation, "Regression Toolbox Info")
    Exit Sub
End If

Im zweiten Schritt möchte ich überprüfen, ob einer der eingegebenen Werte ungültig ist, weil er keine Funktion von x ist. Dann werde ich benachrichtigt, z. B. wenn ein Text oder eine andere Ziffer eingegeben wird, die die Berechnungen nicht zulässt.

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

In Bezug auf Letzteres meldet der Code, den ich bisher habe, einen Fehler, da er mir trotz der Eingabe gültiger Funktionen in jedes der Textfelder die Meldung anzeigt, dass es sich um eine ungültige Eingabe handelt, d. h., er nimmt jeden Wert als ungültige Eingabe an. Ich habe versucht, die Zeilen auf verschiedene Weise zu ändern, aber ich erhalte immer wieder denselben Fehler. Wo kann ich den Fehler machen, der mich nicht zum gewünschten Ergebnis führt?

Vielen Dank für die wertvolle Mitarbeit.

pdt: Unter folgendem LinkArbeitsmappefinden Sie die Arbeitsmappe mit dem Code, an dem ich arbeite. Wenn die Zeilen zur Überprüfung weggelassen werden, funktioniert der gesamte Code einwandfrei. Es fehlt jedoch die Überprüfung der in den einzelnen Textfeldern eingegebenen Daten, um festzustellen, ob es sich um gültige Einträge handelt oder nicht.

verwandte Informationen