Vba 如何限制可以键入的字符
我想确保此Vba 如何限制可以键入的字符,vba,visual-studio,text,textbox,Vba,Visual Studio,Text,Textbox,我想确保此文本框中只能键入字母。我不想输入像()、$这样的字符,甚至数字。我知道如何使用MaxLength限制字符数量,但不知道可以键入哪些字符。对于VBA,您可以分析在按键事件中输入的内容。您也可以在VB.NET中执行此操作,不过会有点不同 Private Sub Text4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'This will allow only numaric values in the Text4 text b
文本框中只能键入字母。我不想输入像(
)、$
这样的字符,甚至数字。我知道如何使用MaxLength
限制字符数量,但不知道可以键入哪些字符。对于VBA
,您可以分析在按键事件中输入的内容。您也可以在VB.NET中执行此操作,不过会有点不同
Private Sub Text4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'This will allow only numaric values in the Text4 text box.
If KeyAscii = 8 Then Exit Sub
If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
KeyAscii = 0
End If
End Sub
您将看到此处表示的字符的十进制数。
要限制用户可以输入的内容,您可以处理文本框的按键事件
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If Not (Asc(e.KeyChar) = 8) Then
If Not ((Asc(e.KeyChar) >= 97 And Asc(e.KeyChar) <= 122) Or (Asc(e.KeyChar) >= 65 And Asc(e.KeyChar) <= 90)) Then
e.KeyChar = ChrW(0)
e.Handled = True
End If
End If
End Sub
谢谢,顺便问一下,这是文本框2还是文本框4?哈,这是文本框4。那是复制粘贴的东西之一。顺便说一下,这是VBA的。你有那个标签,所以我不确定你需要什么。谢谢你的回答,但我自己也找到了一种方法,因为我一次只需要文本框中的一个字符。我只是检查里面是否有东西,如果有,它就会检查它是否是一封信。无论如何谢谢你!这将是公认的答案。@DavidWheatley他们之间有区别,只是提醒一下。由于语法的原因,您标记的VB.Net
和VBA
是不同的。@DavidWheatleyVBA
用于Office文档上的宏,它无法访问VB.Net功能。Char.isleter(e.KeyChar)
可能也很有用。我同意,有很多方法。
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If Not (Asc(e.KeyChar) = 8) Then
If Not ((Asc(e.KeyChar) >= 97 And Asc(e.KeyChar) <= 122) Or (Asc(e.KeyChar) >= 65 And Asc(e.KeyChar) <= 90)) Then
e.KeyChar = ChrW(0)
e.Handled = True
End If
End If
End Sub
If Not (Asc(e.KeyChar) = 8) Then
Dim allowedChars As String = "abcdefghijklmnopqrstuvwxyz"
If Not allowedChars.Contains(e.KeyChar.ToString.ToLower) Then
e.KeyChar = ChrW(0)
e.Handled = True
End If
End If