网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月29日漏签0天
vb吧 关注:156,085贴子:1,166,238
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回vb吧
>0< 加载中...

请问在vb中当除数是0的时候怎么处理呢?【谢谢】

  • 只看楼主
  • 收藏

  • 回复
  • mechatronics
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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 Then
MsgBox "轴向进给量不可能为0"
End If
ca = 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.Show
End Sub

-----------------------------------------
有些时候text28或者27中的数就是零了。。怎么处理不让他弹出窗口报错呢?


  • mechatronics
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是我做的一个工厂里算加工切削工时的一部分代码。比如说我这个东西没有涉及到铣床加工,那自然铣床那个数据就是不填的。不填就是0了。。然后就出现除数是0的情况了。如何避免呢。。谢谢。


见图


2025-08-29 22:13:12
广告
不感兴趣
开通SVIP免广告
  • mechatronics
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
111


  • mechatronics
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哈哈,果然是,谢谢,3q


  • mechatronics
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Val(Text28) Val(Text29) Val(Text30)也不可能是0的,那我可以这么写吗?
-------------------------------------



If Val(Text27) = 0 Then
MsgBox "轴向进给量不可能为0"
Exit Sub
end if
If Val(Text28) = 0 Then
MsgBox "若工件不需要铣削,铣刀转数请填1"
Exit Sub 
End If
If Val(Text29) = 0 Then
MsgBox "若工件不需要铣削,铣刀齿数请填1"
Exit Sub 
End If
If Val(Text30) = 0 Then
MsgBox "若工件不需要铣削,每齿进给请填1"
Exit Sub 
End If
---------------------------------------

这样可以吗?这么多end if 这么多 exit sub 会不会冲突了??还有这个 sub 是什么意思啊? 3q


  • zzfuns
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先你要明白一点,空格和0是不同的。不填写是空格,但在你的计算中会被VB认为是0,而并非你填写了0。

既然如此,你可以使用
if text27.text<>"" and text28<>"" ...... then ..... else .....
类似这些语句。

用了exit sub的话,就是直接跳过这个过程了,后面的语句都没有执行,自然不会报错了。都用exit sub的问题在于,你没有填写任何一个参数,后面的语句都是不会执行的。我想这不是你的本意吧。

建议恶补VB编程技术,起码找个入门书好好读一下。


  • 58.48.198.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
On Error Resume Next


  • gen_lao
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:7楼
有见地,很赞同7楼想的比较全面些,很多时候不是要解除异常,而是处理异常状况!


2025-08-29 22:07:12
广告
不感兴趣
开通SVIP免广告
  • 二白Q0
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果再考虑到用户体验的话,可以先让Command4不可用,直到所有用户输入都符合要求,不符合要求的项用红色背景或其他方式提示出来


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示