当子子中的另一个子组输出Msgbox时,如何从sub出去?

Ana*_*naa 5 excel vba excel-vba

在sub("Sensitivities")中我调用另一个子("MVE_NIM_Subs.MVE_Main"),如果这个子输出一个MsgBox我想结束sub并转到定义的"Jump",而不是继续执行sub.我该怎么做?

谢谢

Public Sub Sensitivities() 
Application.Run "MVE_NIM_Subs.MVE_Main" 
........ 
Jump: 
End Sub
Run Code Online (Sandbox Code Playgroud)

Fox*_*rns 3

您可以使用公共布尔变量捕获您的 Msgbox。在子部分中,MVE_NIM_Subs.MVE_Main如果出现消息框,请修改代码以将公共布尔变量设置为 true。

sub 结束后,执行将返回到执行 sub 内的代码Sensitivities。然后只需检查公共布尔变量的值即可。如果是真的,那就去跳跃吧。

像这样的东西:

Option Explicit
Public DidMsg As Boolean

Sub Sensitivities()

DidMsg = False
Application.Run "MVE_NIM_Subs.MVE_Main"

If DidMsg = True Then GoTo Jump
'rest of your code
'
'
'
'


Jump:
'rest of your code after point Jump
'
'
'
'
End Sub

Sub MVE_Main()

'your code whatever it is
'right after using the msgbox type:
DidMsg = True


End Sub
Run Code Online (Sandbox Code Playgroud)