be sourced to:vb入门编程系列问题1

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 14:32:05
我想做一个数字比较的程序,要屏蔽字母和其他字符,如果输入字母或其他字符,就会有一个msgbox提示,但是现在有一个问题 :就是当我输入“数字+字母”时,仍然不能屏蔽掉,出现“类型不匹配”的问题,这怎么解决呢?求教!!
比如:
4m,这个东西用什么办法判断它不是数字,呢?
请把代码写清楚~~
如果成功,我给50分!!

根据我的经验,提示如下:
方法有好多拉
比如:
1,检测输入的字符串,逐个字符转化成数字,看是否在0~9的范围内,可用
num = "45121df4151" '设输入为这个东西
lennum=len(num) '输入内容的字符个数
For i = 1 To lennum '逐个比较
If Mid(num, i, 1) < "0" Or Mid(num, i, 1) > "9" Then MsgBox "你输入的数字不符合要求", vbInformation, "输入错误提示"
Next
2,直接用val取出数字串
原理,val可以取出某个串中的前面的数字,直到为其他字符为止,cstr强制转换成字符串
num = "45121df4151"
numtmp=Cstr(val(num))
if numtmp<>num then
MsgBox "你输入的数字不符合要求", vbInformation, "输入错误提示"
end if
注意,这里有个情况
如num="4e8"或者"4d8"之类的时
可能会造成溢出,原因是这里可以作为数字,只是科学计数法
所以在使用val之前加上这个
numtmp=replace(num,"d","")
numtmp=repalce(num,"e","")
另外这里还有个问题
如有其他问题,加我QQ:253087664

用判断语句,判断是否是数字,是进入程序,否则不进入,弹出对话框而已。

Private Sub Text1_KeyPress(KeyAscii As Integer)
If (Chr(KeyAscii)) > "9" Or Chr(KeyAscii) = "." Then
KeyAscii = 0
End If
End Sub

这要就能只输入数字了.

isnumeric()函数不行吗?
if not isnumeric(text1.text) then msgbox()