我有以下代码,如果您键入的不是数字,则会给出错误消息:
Private Sub TextBox3_Change()
If Not IsNumeric(TextBox3.Value) Then
MsgBox "Only digits (0-9) allowed."
Cancel = True
End If
End Sub
问题是,如果我要在框中键入字母,它会给我错误消息,但仍将字母写在框中。我希望代码完全阻止任何非数字的输入。
答案 0 :(得分:1)
您可以清除文本框中的值。
Private Sub TextBox3_Change()
If Not IsNumeric(TextBox3.Value) Then
MsgBox "Only digits (0-9) allowed."
TextBox3.Value = ""
Cancel = True
End If
End Sub
或者,如果您不想删除所有内容,则可以删除最后输入的字符。
Private Sub TextBox3_Change()
If Not IsNumeric(TextBox3.Value) Then
MsgBox "Only digits (0-9) allowed."
TextBox3.Value = Left(TextBox3.Value,Len(TextBox3.Value) - 1)
Cancel = True
End If
End Sub
答案 1 :(得分:0)
您可以使用KeyPress事件首先停止任何非数字条目。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
答案 2 :(得分:0)
u可以使用按键事件
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Not IsNumeric(Chr(KeyCode)) Then
KeyCode = 0
End If
End Sub
答案 3 :(得分:0)
您应该使用KeyPress事件
Private Sub TextBox3_KeyPress(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox3.KeyPress
Dim sKeys As String = "1234567890"
If Not sKeys.Contains(e.KeyChar.ToString()) Then e.Handled = True
End Sub