vb 类型不配错误高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:28:35
我写一个程序的里面有一个输入数字的TXIT空间,
我在那个空间输入数字,程序可以运行,如果我把那个空间输入字符
出错误,出(类型不配)提示。
shuliang = CInt(Trim(txtshuliang.Text)) '转换整数
就这出错。

我用过on error goto cuowu
cuowu:msgbox"输入有误"
我用这个以后,我输入数字也出错。
这到底什么错误

全体代码:
Private Sub txtshuliang_Change()
Dim danjia As Currency
Dim pijia As Currency
Dim Puli As Currency
Dim shuliang1 As Integer '显示出来的数量

If (lbldanjiaxian.Caption = "") Then
MsgBox "您还没找到购买目标!", vbExclamation, "你好!"
txtshuliang.Text = ""
Exit Sub
End If
danjia = CCur(lbldanjiaxian.Caption) '显示的单价转换钱
pijia = CCur(lblpijiaxian.Caption) '显示的批价转换钱
shuliang1 = CInt(lblshuliangxian.Caption) '显示的数量转换整数
If (txtshuliang.Text = "") Then '输入完毕数量以后重新输入数量时 数量改成0 否则出现错误!
txtshuliang.Text =

在shuliang = CInt(Trim(txtshuliang.Text)) 之前
加上
if not isnumeric(txtshuliang.text) or len(txtshuliang.text)>9 then
msgbox "输入不是有效数字"
exit sub
end if
'VB本来容错就差,像这样的入口,应该多加点判断。

shuliang = CInt(Trim(txtshuliang.Text))
改为
dim str as string
str = Trim(txtshuliang.Text)
if str = "" then
shuliang = 0
else
shuliang = cint(str)
end if

shuliang = CInt(Trim(txtshuliang.Text))
cint,是把里面的参数转成整型,小数份4舍五入,
而您输入字符时,无法转换成数值,所以报错,

函数功能与参数不匹配

可以在TXIT的Keypress事件中加入是否数字类型的判断
If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 46 Or KeyAscii = 13 Or KeyAscii = 8 Then
Else
KeyAscii = 0
End If
这样就ok了