在Word宏VBA循环中使⽤onerror的错误处理⽅法
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 Integercontinue语句执行过程
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循环中的多次遇错处理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。