轻狂大小姐免费阅读:VB编程的错误等等问题...

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 00:24:12
我朋友教我编了个简单计算器

Private Sub Command1_Click()
Text3.Text = ""
Text2.Text = ""
Text1.Text = ""
End Sub

Private Sub Command2_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x + y
End Sub

Private Sub Command3_Click()
End
End Sub

Private Sub Command4_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x - y
End Sub

Private Sub Command5_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x * y
End Sub

Private Sub Command6_Click()
Dim x As Integer
Dim y As Integer
x = Text1.Text
y = Text2.Text
Text3.Text = x / y
End Sub

Private Sub Form_Load()

End Sub

这是代码

我弄好后,运行了,什么也不填,直接按 加、减、乘或除

就会出错

1、
运行时错误 '13'

类型不匹配 ----请问怎么解决

2、
数字大了点就出现了

实时错误'6'
益处

谢谢,请问怎么解决这2个问题?

对不起,没有什么积分。。。
你好,谢谢你的答案.

帮我解决下这个问题 我弄好后,运行了,什么也不填,直接按 加、减、乘或除

怎么编辑错误信息 例如 请输入数字 数字太大了(益出那个错误)

如果不在文本框中输入数据,那么x,y是空,进行数值的+-*/运算当然出错了
可以这样写,x = val(Text1.Text),y=val(Text1.Text),类型不匹配是因为文本框是字符类型,要转换为数值才可以,用函数val
数值大了可以改变数据类型为double
双精度型(Double) 用8个字节(64位)存储,其中,符号占l位,指数占11位,其余52位用来表示尾数,此外,还有一个附加的隐含位。双精度型的数据可以精确到15或16位十进制数。其负数的范围为-1.797693134862316D+308~-4.94065D-324,正数的范围为4.94065D-324~-1.797693134862316D+308。
应该够用了
给出出错信息可以这样写
if x>1.797693134862316D+308 then msgbox "数值太大了"
if x<-1.797693134862316D+308 then msgbox "数值太小了"

当然 你从text内得到的是字符串 而你要运算的是传说中的整型 这样自然类型布匹配 你可以吧所有的
x = Text1.Text
y = Text2.Text
改成
x = CLng(Text1.Text)
y = CLng(Text1.Text)
当然这是转化成了长整型
定义
Dim x As Integer
Dim y As Integer
也要变
Dim x As Long
Dim y As Long
这样就可以了
两个问题都解决了