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 Occurred ”
Exit 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 Occurred ”
Exit Sub
End Sub
当我们运行这个宏时,子程序在遇到错误之前会执行所有可能的除法问题,然后出现一个消息框,告诉我们发生了错误,并且VBA仅存在于子程序中:
注意:您可以在此处找到 VBA 中Exit语句的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: