excel - 'on error goto 0' 和 'on error goto -1' 之间的区别 -- VBA

标签 excel vba msdn

谁能找出 VBA 中“On error goto -1”和“on error goto 0”之间的区别吗?我尝试过 google 和 msdn,但没有成功。

最佳答案

On Error GoTo 0 禁用过程中当前存在的任何错误捕获。

On Error GoTo -1 清除错误处理并将其设置为空,这样您就可以创建另一个错误陷阱。

示例:出错时转到 -1

在引发第一个错误后,它将GoTo ErrorFound,然后清除例程的错误处理并设置一个新的错误处理,当出现错误时,它将GoTo AnotherErrorFound找到了。

Sub OnErrorGotoMinusOneTest()

    On Error GoTo ErrorFound

    Err.Raise Number:=9999, Description:="Forced Error"

    Exit Sub

ErrorFound:

    On Error GoTo -1 'Clear the current error handling
    On Error GoTo AnotherErrorFound 'Set a new one
    Err.Raise Number:=10000, Description:="Another Forced Error"

AnotherErrorFound:

    'Code here

End Sub

示例:出错时转到 0

出现第一个错误后,您将收到该错误,因为错误处理已被禁用。

Sub OnErrorGotoZeroTest()

    On Error GoTo 0

    Err.Raise Number:=9999, Description:="Forced Error"

End Sub

关于excel - 'on error goto 0' 和 'on error goto -1' 之间的区别 -- VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158901/

相关文章:

vba - 是否可以在With Rg中引用Rg

c# - 在我自己的类上使用集合初始值设定项

vba - 删除 Power Point 幻灯片中的现有图表并使用 VBA 替换为新图表

vba - 将多个工作表上同一行的值复制到一个工作表

excel - 如何将 VBA 代码限制为特定的工作表?

VBA Max() 的单元格地址

c# - 如何使用 Microsoft.Win32.Registry.OpenSubKey 直接转到特定键?

.net - Microsoft.Office.Interop.Word 文档

Vba - 为什么 xlHistogram 不起作用?

.net - 如何结束excel.exe进程?