请问在vb中当除数是0的时候怎么处理呢?【谢谢】
vb吧
全部回复
仅看楼主
level 2
mechatronics 楼主
Public Sub Command4_Click()txt1 = Val(Text1)txt2 = Val(Text2)txt3 = Val(Text3)txt4 = Val(Text4)txt5 = Val(Text5)txt6 = Val(Text6)txt7 = Val(Text7)txt8 = Val(Text8)txt9 = Val(Text9)txt10 = Val(Text10)txt11 = Val(Text11)txt12 = Val(Text12)txt13 = Val(Text13)txt14 = Val(Text14)txt15 = Val(Text15)txt16 = Val(Text16)txt17 = Val(Text17)txt18 = Val(Text18)txt19 = Val(Text19)txt20 = Val(Text20)txt21 = Val(Text21)txt22 = Val(Text22)txt23 = Val(Text23)txt24 = Val(Text24)txt25 = Val(Text25)txt26 = Val(Text26)txt27 = Val(Text27)txt28 = Val(Text28)txt29 = Val(Text29)txt30 = Val(Text30)txt31 = Val(Text31)txt32 = Val(Text32)txt33 = Val(Text33)txt34 = Val(Text34)txt35 = Val(Text35)If Val(Text27) = 0 ThenMsgBox "轴向进给量不可能为0"End Ifca = Fix((Val(Text21) - Val(Text1)) / 2 / Val(Text27) + 2)cb = Fix((Val(Text21) - Val(Text2)) / 2 / Val(Text27) + 2)cc = Fix((Val(Text21) - Val(Text3)) / 2 / Val(Text27) + 2)cd = Fix((Val(Text21) - Val(Text4)) / 2 / Val(Text27) + 2)ce = Fix((Val(Text21) - Val(Text5)) / 2 / Val(Text27) + 2)ta = Val(Text6) * ca / Val(Text26) / Val(Text25)tb = Val(Text6) * cb / Val(Text26) / Val(Text25)tc = Val(Text6) * cc / Val(Text26) / Val(Text25)td = Val(Text6) * cd / Val(Text26) / Val(Text25)te = Val(Text6) * ce / Val(Text26) / Val(Text25)xta = 2 * Val(Text11) * Val(Text16) / Val(Text28) / Val(Text29) / Val(Text30)xtb = 2 * Val(Text12) * Val(Text17) / Val(Text28) / Val(Text29) / Val(Text30)xtc = 2 * Val(Text13) * Val(Text18) / Val(Text28) / Val(Text29) / Val(Text30)xtd = 2 * Val(Text14) * Val(Text19) / Val(Text28) / Val(Text29) / Val(Text30)xte = 2 * Val(Text15) * Val(Text20) / Val(Text28) / Val(Text29) / Val(Text30)Form3.ShowEnd Sub-----------------------------------------有些时候text28或者27中的数就是零了。。怎么处理不让他弹出窗口报错呢?
2008年08月22日 11点08分 1
level 2
mechatronics 楼主
这是我做的一个工厂里算加工切削工时的一部分代码。比如说我这个东西没有涉及到铣床加工,那自然铣床那个数据就是不填的。不填就是0了。。然后就出现除数是0的情况了。如何避免呢。。谢谢。见图
2008年08月22日 11点08分 2
level 2
mechatronics 楼主
111
2008年08月22日 11点08分 3
level 2
mechatronics 楼主
哈哈,果然是,谢谢,3q
2008年08月22日 13点08分 5
level 2
mechatronics 楼主
Val(Text28) Val(Text29) Val(Text30)也不可能是0的,那我可以这么写吗?-------------------------------------If Val(Text27) = 0 ThenMsgBox "轴向进给量不可能为0"Exit Subend ifIf Val(Text28) = 0 ThenMsgBox "若工件不需要铣削,铣刀转数请填1"Exit Sub End IfIf Val(Text29) = 0 ThenMsgBox "若工件不需要铣削,铣刀齿数请填1"Exit Sub End IfIf Val(Text30) = 0 ThenMsgBox "若工件不需要铣削,每齿进给请填1"Exit Sub End If---------------------------------------这样可以吗?这么多end if 这么多 exit sub 会不会冲突了??还有这个 sub 是什么意思啊? 3q
2008年08月22日 13点08分 6
level 6
首先你要明白一点,空格和0是不同的。不填写是空格,但在你的计算中会被VB认为是0,而并非你填写了0。既然如此,你可以使用if text27.text<>"" and text28<>"" ...... then ..... else .....类似这些语句。用了exit sub的话,就是直接跳过这个过程了,后面的语句都没有执行,自然不会报错了。都用exit sub的问题在于,你没有填写任何一个参数,后面的语句都是不会执行的。我想这不是你的本意吧。建议恶补VB编程技术,起码找个入门书好好读一下。
2008年08月22日 16点08分 7
level 0
On Error Resume Next
2008年08月23日 02点08分 8
level 1
回复:7楼
有见地,很赞同7楼想的比较全面些,很多时候不是要解除异常,而是处理异常状况!
2011年03月22日 15点03分 9
level 7
如果再考虑到用户体验的话,可以先让Command4不可用,直到所有用户输入都符合要求,不符合要求的项用红色背景或其他方式提示出来
2011年03月23日 01点03分 10
1