在Word 宏 VBA循环中使用on error的错误处理方法

Word中的宏采用VBA,但是不支持VB中的错误处理机制,只能on error设置错误陷阱的方法进行错误处理。一般有以下几种方法:


方法一:

On Error Resume Next

使用这种方法会在遇到错误语句时跳过此句,继续运行下一句。

 

方法二:

On Error GoTo [Line]

[Line]可以是行号或者一个标签,如果发生错误,则程序会跳到[Line]指定的位置,激活错误处理程序。指定的[Line]必须与On Error 语句处于同一过程;否则会发生错误。


方法三:

On Error GoTo 0

On Error GoTo 0 禁止当前过程中任何已启动的错误处理程序。On Error GoTo 0 停止在当前过程中处理错误。即使过程中包含编号为 0 的行,它也不把行 0 指定为处理错误的代码的起点。如果没有 On Error GoTo 0 语句,在退出过程时,错误处理程序会自动关闭。


现在遇到的问题主要是在for循环中使用on error语句进行错误处理后如果循环中多次出现错误则第二次的错误无法继续进行正常的错误处理,解决方法是使用Rusume语句恢复执行,但如果程序中存在多行相应出错行,则需要配合On Error GoTo [line]和Resume [line]。


范例如下:

Sub Test()
    Dim i, j, k As Integer
    j = -1
    On Error GoTo errHandler
    For i = 0 To 5
        k = 100 / (i * j) + 1
        MsgBox k
continue:
        j = j + 1
    Next
    Exit Sub
errHandler:
    Err.Clear
    Resume continue
End Sub

通过On Error GoTo [line]和Resume [line]配合使用就解决了for循环中的多次遇错处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值