ฉันยังคงได้รับข้อยกเว้น cast เมื่อรันรูทีนย่อยใน userform มันรับรู้ค่า Null เมื่อมันอ่านtxtMileage.text = ""
และส่งข้อผิดพลาดเพราะมันพยายามที่จะตรวจสอบว่าค่ามากกว่า 300
If btnYes.Checked = True And txtMileage.Text > 300 Then
MsgBox("Distance Exceeds 300 Miles")
txtMileage.Focus()
Exit Sub
ฉันต้องการให้ละเว้นการตรวจสอบค่าเมื่อbtnNo.checked = true
และtxtMileage.text = ""
ความคิดใด ๆ
Private Sub cmdCalculate_Click(sender As Object, e As EventArgs) Handles cmdCalculate.Click
If btnNo.Checked = False And btnYes.Checked = False Then
MsgBox("Please select yes or no")
Exit Sub
End If
If btnYes.Checked = True And txtMileage.Text = "" Then
MsgBox("Please instert Mileage")
txtMileage.Focus()
Exit Sub
End If
If btnNo.Checked = True And txtMileage.Text = "" Then
End If
If btnYes.Checked = True And txtMileage.Text > 300 Then
MsgBox("Distance Exceeds 300 Miles")
txtMileage.Focus()
Exit Sub
End If
End Sub
อัปเดตพร้อมข้อความแสดงข้อผิดพลาด แต่ยังคงส่งถึง
If btnYes.Checked = True And txtMileage.Text = "" Then
MsgBox("Please insert Mileage")
txtMileage.Focus()
Exit Sub
ElseIf btnYes.Checked = True And txtMileage.Text > 300 Then
MsgBox("Distance Exceeds 300 Miles")
txtMileage.Focus()
Exit Sub
End If
ElseIf btnYes.Checked = True And txtMileage.Text > 300 Then
น่าจะเป็นบรรทัดปัญหาในที่สุด Then
.Text = ""
นั่นหมายความว่า.Text <> ""
อย่างนั้น ลองใส่ในบรรทัดต่อไปนี้ก่อนที่If
คำสั่งเพื่อดูว่าค่าของ.Text
คืออะไร: Debug.Print "~" & txtMileage.Text & "~"
(หากหน้าต่าง Immediate ไม่ได้เปิดคุณสามารถใช้Msgbox
แทนDebug.Print
)