vba中 on error的问题 30

vba中onerror的问题背景是我想打开一个路径中的工作薄,但是路径可能发生变化导致错误,我就想判断如果因为路径错误就有一个msgbox的提示然后endsub... vba中 on error的问题背景是 我想打开一个路径中的工作薄,但是路径可能发生变化导致错误,我就想判断如果因为路径错误就有一个msgbox的提示然后end sub 展开
 我来答
龙行东山
2018-07-19
知道答主
回答量:25
采纳率:0%
帮助的人:6.4万
展开全部

VBA中错误捕捉的方法主要有两种

第一种捕捉方法:  

1、语法:

On Error GoTo Err_Handle  '如果遇到错误就跳转到错误处理代码

语句xxxxx

Exit Sub/Function(如果没有这条语句,即使没有错误也会执行错误处理语句)

Err_Handle: 语句 xxxxxx

2、举例:

Sub 查找数字()  ’本段代码查找电子表格中有没有数字12

On Error GoTo Err_Handle

MsgBox Cells.Find(12).Address

Exit Sub   '如果没有这个退出过程语句,会一直执行下去

Err_Handle:

MsgBox ("不存在该数字")

End Sub

(1)、电子表中数据和代码

(2)、查找12的结果:

(3)、查找13的结果:

第二种捕捉方法:

1、语法:

On Error Resume Next  '如果遇到错误,不管错误,继续往下执行,但如果嵌套了其他错误处理语句,这些错误处理语句还是会按照自己规则运行

语句xxxx

On Error GoTo 0 ’结束错误捕捉

2、举例代码:

Sub 查找数字()

Dim i As Integer

On Error Resume Next  '遇到错误向下执行

MsgBox Cells.Find(13).Address

On Error GoTo Err_Handle

i = 10 / 0  ’会跳转到错误处理语句,而不会运行 Exit sub 

Exit Sub

Err_Handle:

MsgBox i

On Error Resume Next

End Sub

3、结果说明和图例:

excel表中没有13这个数字,但是不会报错也不会有弹窗

在On Error Resume Next 和 Err_Handle之间代码,还是可以发挥错误捕获功能,因此可以出现下面弹窗:

希望能帮到你,

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式