Visual Basic:跳转到子过程而不运行后面的代码

时间:2015-09-27 09:44:52

标签: vba

在下面的代码中,我希望在运行子code()并且condition等于false时这样做,那么它将结束子{{} 1}},不显示消息test()并停止所有脚本。有人可以告诉我怎么做吗?

"hello"

4 个答案:

答案 0 :(得分:2)

您要做的是以下列方式使用ReturnExit Sub

If condition = false Then
  Call condition()
  Return
End If

https://msdn.microsoft.com/en-us/library/dz1z94ha.aspx告诉你

  

当Sub过程返回到调用代码时,继续执行调用它的语句之后的语句。   以下示例显示了从Sub过程返回的内容。

Sub mySub(ByVal q As String)
  Return
End Sub 
     

Exit SubReturn语句导致立即退出Sub过程。任何数量的Exit Sub和Return语句都可以出现在过程中的任何位置,您可以混合使用Exit Sub和Return语句。

为了突破调用子,内部子必须返回一个值,指示调用子不应该打印,没有内置方式。

答案 1 :(得分:0)

放一个

Exit Sub

通话条件()

之后

答案 2 :(得分:0)

你需要使用if then else

Private Sub code()
 If condition = false Then
  Call condition()
 else
  MsgBox("Hello World")
 End If
End Sub

Private Sub condition()
  MsgBox("Failure")
End Sub

more on this link

答案 3 :(得分:0)

使用End关键字:

Const Condition = False

Private Sub test()
    Call code
    MsgBox ("Hello")
End Sub

Private Sub code()
    If Condition = False Then
        End
    End If
    MsgBox ("Hello World")
End Sub