我想知道是否有一种简化的方法可以从另一个嵌套的Sub
(Sub2)退出Sub
(Sub1);那么,Sub2是在Sub1内部调用的,如果在Sub1中验证失败,我也想退出Sub1吗?
Sub Process()
Validate()
'SomeMorecode...
End Sub
Sub Validate()
'...
'...
End Sub
答案 0 :(得分:6)
首先,您需要了解Subs不返回值。它们就像C中的void
函数。
第二,每当您要退出某个Sub时,请使用Exit Sub
。
或者,如果您想退出某个功能,请使用Exit Function
或者,如果您想退出Do Loop,Exit Do
Exit While
等
请记住,如果在实际返回任何内容之前执行Exit Function
,则将自动设置默认值。如果是布尔型,则该值为False。
您明白了
Sub MyFirstSub()
If Validate() Then
'Do more work here
Else
Exit Sub ' Early Exit
End If
'Other things to do after validation is TRUE
'...
'...
End Sub
Function Validate() As Boolean
' Do validation here and either return TRUE or FALSE
If Rnd(1) > 0.5 Then
Validate = True
Else
Validate = False
End If
End Function