2015-09-27 47 views
1

在下面的代码中,我希望在运行sub code()时,并且condition等于false,那么它将结束子test(),不显示消息"hello"并停止所有脚本。有人能告诉我该怎么做吗?Visual Basic:跳转到子程序,但不运行代码

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

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

的'呼叫状态后添加一个'Return'()'!? – luk2302

+0

我重新解释了这个问题。不便之处@ luk2302 –

回答

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语句。

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

+0

'Exit Sub'和'Return'不会阻止消息“hello”,按要求。 – omegastripes

+0

@omegastripes它会为原来的问题。 – luk2302

0

把一个

Exit Sub 

将呼叫状态()

0

您需要使用,如果再别的

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

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