Vba:如何在错误时退出 sub


当遇到错误时,可以使用 VBA 中的Exit Sub语句退出子过程。

以下是在实践中使用此语句的常见方法:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

此特定宏尝试将范围A1:A10中的每个值除以范围B1:B10中的相应值。

如果发生错误(例如,我们尝试除以零),则On Error GoTo语句会告诉 VBA 访问ErrorMessage ,这会生成一个消息框,告诉用户发生了错误,并使用Exist Sub终止子过程。声明.声明.

以下示例展示了如何在实践中使用此语法。

示例:VBA 出错时如何存在子项

假设我们在 A 列和 B 列中有以下值列表:

现在假设我们创建以下宏,将 A 列中的每个值除以 B 列中的相应值,并将结果显示在 C 列中:

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

当我们运行这个宏时,我们收到以下错误:

我们收到此错误是因为在 Excel 工作表的第四行中我们尝试除以零。

如果我们只是想在发生此错误时退出子过程,我们可以使用Exit Sub语句,如下所示:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

当我们运行这个宏时,子程序在遇到错误之前会执行所有可能的除法问题,然后出现一个消息框,告诉我们发生了错误,并且VBA仅存在于子程序中:

VBA关于输出错误

注意:您可以在此处找到 VBA 中Exit语句的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

如何使用 VBA 创建文件夹
如何使用VBA删除文件夹
如何使用VBA删除文件

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注