下面代码,在subb里写个什么代码能让suba停止执行,谢谢各位

[复制链接]
查看11 | 回复3 | 2021-1-27 05:16:42 | 显示全部楼层 |阅读模式
下面代码,在subb里写个什么代码能让suba停止执行,谢谢各位
PrivateSubCommand1_Click()
Calla
EndSub
PrivateSuba()
Callb
MsgBox"a"
EndSub
PrivateSubb()
MsgBox"b"
'在这里写个什么代码能让suba里面的msgbox"a"不执行
EndSub
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:16:42 | 显示全部楼层
方法1:主动报出一个异常来,让程序中断执行
方法2:将b改为带返回值的function,在a中对b的结果进行判断(推荐这种方法)
'方法一
Suba()
Callb
MsgBox"a"
EndSub
Subb()
MsgBox"b"
Err.RaisevbObjectError+513,"breaka","跳过msgbox""a"""
EndSub
'方法二
Suba()
IfbThenMsgBox"a"
EndSub
Functionb()AsBoolean
MsgBox"b"
b=MsgBox("继续?",vbYesNo,"Input")=vbYes
EndFunction
回复

使用道具 举报

千问 | 2021-1-27 05:16:42 | 显示全部楼层
如果用楼上的“方法一”,
应该在Suba 中加入“异常捕获”才更完善。

要不然:
1. 在IDE中会弹出错误提示并中断执行;
  并且“继续执行”下去也不能直接跳过后面的代码。
2. 更严重的问题是编译后则在“错误提示”后强制结束程序。
我觉得在这种情况下,用方法二好些。
把“过程b”改为“函数b”,按b的返回值来决定在a中的“后续流程”。

回复

使用道具 举报

千问 | 2021-1-27 05:16:42 | 显示全部楼层
用函数吧,函数是引用执行完再进行引用过程的下一个语句
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行