Notifications
Clear all

Finalizar uma sub através de outra sub

3 Posts
2 Usuários
0 Reactions
1,090 Visualizações
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

É possível ?
Tenho uma sub sendo executada (chamar de subExec) que chama outra sub (chamar de subOutra) . Queria que ao iniciar a subOutra finalizasse a SubExec (pra não continuar o processo da subExec ao terminar a subOutra). Deu pra entender?

 
Postado : 07/10/2013 12:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para interromper e sair de uma Rotina que está sendo executada utiliza-se a instrução : Exit Sub, então como não sabemos quais as instruções tem a subExec, vou indicar genericamente :

Private Sub subExec ()

Instrução...
Instrução.......
Instrução........
Instrução........

Aqui fazemos a chamada a outra Sub
Call subOutra

Aqui finalizamos a sub subExec.
Exit Sub

Instrução...
Instrução...
Instrução...

End Sub

[]s

 
Postado : 07/10/2013 4:31 pm
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

A situação é: Uma sub (SubExec) chama outra(SubOutra) que chama a SubExec (tipo um loop). Desnecessário, mas talvez seja a solução pra um problema que estou tendo.
Quando chamo a SubOutra (usando o call) a SubExec fica aguardando a SubOutra finalizar para Continuar a sua rotina.
Queria algo como um thread, mas (até onde sei) não tenho isso no vba. Então gostaria de finalizar a SubExec a partir da Sub Outra

Algo assim:

Sub SubExec()
    Call SubOutra
End Sub

Sub SubOutra()
     'Aqui entra o código que fecha a SubExec, algo como "Exit Sub (SubExec)"
     Call SubExec
End Sub



 
Postado : 08/10/2013 6:11 am