如何改写Err.Raise,使之不弹出对话框只是中止程序
有个中止程序的问题困扰了我一个礼拜,始终没有相处解决方案,特来请教各位高手
背景:
1.目前我们公司的一套程序由于历史遗留问题,没有采用正规的函数返回值的方法来弹出报错对话框,而是使用了大量的Err.Raise 方法来弹出错误信息,用户点确定后,程序即中止,不在往下执行
2.目前我们需要在现在的代码上增加自动执行程序的功能,所以当程序遇到报错后,就弹出了这个对话框,需要人工去干预,不会自动中止
期望解决的方法:能有其他方法来代替VB 自带的Err.Raise方法,使之不弹出对话框只是中止程序
范例:
Err.Raise 1, , "Lot:" & sLotID & "不存在!"
[解决办法]
我1楼不是给你答案了吗?
无论你的错误在哪一层,在最初的时候用
On Error Resume Next
就可以忽略错误的发生,还可以用
If Err.Number <> 0 Then
来判断中间是否发生错误,并可进行相应处理,如:
Dim lngTemp As LongPrivate Sub Form_Load() On Error Resume Next lngTemp = 0 ' 改变这个值为0或1得到不同的结果 CallMe If Err.Number <> 0 Then Err.Clear GoTo ErrOver End If MsgBox "正常执行完成" Exit SubErrOver: MsgBox "发生错误结束"End SubPrivate Sub CallMe() If lngTemp <> 1 Then CallMe2 End IfEnd SubPrivate Sub CallMe2() Err.Raise 1, , "Lot:" & sLotID & "不存在!"End Sub