'窗体上放 3 个 CheckBox,1 个 TextBox Option ExplicitPrivate Sub Form_Load() Check1.Caption = "字母" Check2.Caption = "数字" Check3.Caption = "汉字" Text1 = vbNullString End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) Dim bIsValid As Boolean
Select Case KeyAscii Case vbKeyA To vbKeyZ, 97 To 122 '[A-Za-z] bIsValid = Check1.Value Case vbKey0 To vbKey9 '[0-9] bIsValid = Check2.Value Case Is < 0 bIsValid = Check3.Value Case Else
If LenB(StrConv(Trim$(Text1), vbFromUnicode)) = 2 Then MsgBox "为汉字" End If '限制汉字输入不太可能吧,不过可以用这个判断输入的是否为汉字,之与字母和数字用ASCII码判断就可以了
Select Case KeyAscii Case ASC("A") To ASC("Z"), ASC("a") To ASC("z") bIsValid = Check1.Value Case ASC("0") To ASC("9") bIsValid = Check2.Value Case Is < 0 '汉字 bIsValid = Check3.Value Case Else '其它字符 End Select
Option ExplicitPrivate Sub Form_Load()
Check1.Caption = "字母"
Check2.Caption = "数字"
Check3.Caption = "汉字"
Text1 = vbNullString
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
Dim bIsValid As Boolean
Select Case KeyAscii
Case vbKeyA To vbKeyZ, 97 To 122 '[A-Za-z]
bIsValid = Check1.Value
Case vbKey0 To vbKey9 '[0-9]
bIsValid = Check2.Value
Case Is < 0
bIsValid = Check3.Value
Case Else
End Select
If Not bIsValid Then
KeyAscii = 0
End If
End Sub
MsgBox "为汉字"
End If
'限制汉字输入不太可能吧,不过可以用这个判断输入的是否为汉字,之与字母和数字用ASCII码判断就可以了
Case ASC("A") To ASC("Z"), ASC("a") To ASC("z")
bIsValid = Check1.Value
Case ASC("0") To ASC("9")
bIsValid = Check2.Value
Case Is < 0 '汉字
bIsValid = Check3.Value
Case Else '其它字符
End Select