檢查文字方塊中無效值的缺點

檢查文字方塊中無效值的缺點

我正在製作一個使用者表單,我想根據四個函數 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:在以下連結中練習冊,您可以找到包含我正在處理的程式碼的工作簿。如果省略與驗證相關的行,則完整的程式碼可以完美運行,但是,它將缺少對每個文字方塊中輸入的資料的驗證,以驗證它們是否有效。

相關內容