程序很经典,
Text1.Text 不是纯数字经过 Str(Val(Text1.Text)) 转换的结果就不会等于 Text1.Text。
主要还是要了解 Val 、Str 函数的作用,
Val 是将字符(日期)强行转换为数字,非数字部分则会被 pass 掉,
Str 则是将数字(日期)转换成字符。
你可以用IsNumeric函数来判断
if not isnumeric(text1.text) then msgbox "出错"
先把空格去掉 a=Trim(Text1.text)
逐位判断是否是数字
for i=1 to len(a)
if not isnumeric(mid(a,i,1)) then msgbox "出错"
next i
把以上的综合一下,一个数字的规则,第一个字符可以是付号或数字,如果第一个为付号的话,第二个不能为点,只能为一个数字,如果第一个是零,则第二个必须为点,如果第一个是别的数字,则符合正常规则,后面可以是点或别的数字;一个数字中只能有一个点,后面的全部是数字,这是判断一个字符串是不是数字的规则,按这个逻辑写就可以啦,
这是这个验证的解题思路
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > 48 And KeyAscii < 57 Then
MsgBox "输入正确。"
Else
MsgBox "请输入数字."
End If
End Sub
if not isnumeric(text1.text) then msgbox "出错"