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