永发信息网

我用VB写了一个很简单的程序,但总是得不对结果。求助!!!!!

答案:3  悬赏:50  手机版
解决时间 2021-11-16 07:21
  • 提问者网友:呐年旧曙光
  • 2021-11-16 03:42
我用VB写了一个很简单的程序,但总是得不对结果。求助!!!!!
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-11-16 04:41
在通用声明段
dim ek#

Private Sub Command9_Click()
Dim ea#, eb#, ec#, ed#, ee#, ef#

ea = Val(Text27.Text)
eb = Val(Text28.Text)
ec = Val(Text29.Text)
ed = Val(Text30.Text)
ee = Val(Text31.Text)
ef = eb + ec - ed - ee
ek = ea - ef
Text32.Text = Format(ef, "0.00")
Text34.Text = Format(ek, "0.00")
End Sub

Private Sub Text32_Change()
If ek > 0 Then
Text33.Text = "OK"
Else
Text33.Text = "NO"
End If
End Sub
错误的原因是定义的时候没有把类型写上去,这样默认的就是变体型,第一次使用的时候把text里面的内容赋值给他们,就使得变体的内容默认为了字符,$ ,而字符的加减10+20=1020是这样直接加减的所以,会出错。
然后。。。个人觉得那个十倍错误在定义类型明确后就应该不会有问题了,所以可以把1*去掉看看,要是你还是不行的话再加上去吧,不过这样我就不知道到底是为什么出错了。(每一个没赋值的数字默认为0)
全部回答
  • 1楼网友:煞尾
  • 2021-11-16 06:31
ek不应声明为局部变量
Command9_Click()结束ek值丢失
  • 2楼网友:低血压的长颈鹿
  • 2021-11-16 05:29
建议你改成这样试试:

Private Sub Command9_Click()
Dim ea, eb, ec, ed, ee, ef As Single
Static ek As Single
ea = Val(Text27.Text)
eb = Val(Text28.Text)
ec = Val(Text29.Text)
ed = Val(Text30.Text)
ee = Val(Text31.Text)
ef = 1 * eb + ec - ed - ee
ek = ea - ef
Text32.Text = Format(ef, "0.00")
Text34.Text = Format(ek, "0.00")
End Sub

Private Sub Text32_Change()
If ek > 0 Then
Text33.Text = "OK"
Else
Text33.Text = "NO"
End If
End Sub

因为和你的程序相关,不调试了,你试试吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯