VB 中如何用ASC码判读TEXT中输入是否为中文字符

作者&投稿:撒肯 (若有异议请与网页底部的电邮联系)
vb 中怎样判断输入的字符是否是汉字~

0<ascii<255
我来补充一下代码吧,在form中加入一个Text1
Private Sub Text1_Change()
If Text1.Text = "" Then Exit Sub '如果是空字符串,就退出此过程
Dim a
a = Asc(Mid(Text1.Text, Len(Text1.Text), 1))
If a > 255 Or a < 0 Then MsgBox "刚才输入的是汉字" Else MsgBox "刚输入的是字符"
End Sub
这是靠ASCII码来判断的,你根据你的程序需要进行修改吧,这是对输入框约束输入的比较常用的方法之一,你可以去搜索一下英文字符ASCII码表.

这个需要用Change事件:
Private Sub Text1_Change()
For i = 1 To Len(Text1)
a = Asc(UCase(Mid(Text1, i)))
If a 90 Then MsgBox "输入错误!", 48: Exit Sub
Next
End Sub
或配合KeyPress事件使用:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= 65 And KeyAscii <= 90 Then Exit Sub
If KeyAscii >= 97 And KeyAscii <= 122 Then Exit Sub
If KeyAscii = 8 Then Exit Sub'退格键,一定要注意这个,否则无法通过退格键来删除。
MsgBox "输入错误!", 48
KeyAscii = 0
End Sub
单纯使用KeyPress是无法实现的,因为“粘贴”只能触发Change而不能触发KeyPress。

askii表可知:0-127为非汉字的的ASKII码,也就是说只要asc的返回值不是0-127之间的数值则可以判断为是汉字。

x=asc("你要判断的字符")

if x<0 and x>127 then msgbox "该字符为汉字"

希望对你有所帮助



Private Sub Text1_KeyPress(KeyAscii As Integer)
If Asc(KeyAscii) < 0 Then magbox "您输入了中文"
End Sub