Este tutorial irá ensiná-lo como chamar um subprocedimento de dentro de outro subprocedimento no VBA
É muito útil escrever código que pode ser usado repetidamente e chamado de vários subprocedimentos em seu projeto - pode economizar uma quantidade enorme de tempo e torna o código VBA muito mais eficiente.
Executando um Subprocedimento a partir de outro Subprocedimento
Considere os 3 subprocedimentos abaixo:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2End Sub |
123 | Sub RunRoutine1 ()MsgBox "bom dia"End Sub |
123 | Sub RunRoutine2 ()MsgBox "A data de hoje é" & Formato (Data, "mm / dd / aaaa")End Sub |
Se executarmos o Sub Procedure - TestRoutine - ele chamará RunRoutine1 e RunRoutine2 e 2 caixas de mensagem aparecerão.

Não há limite para o número de Subprocedimentos que você pode chamar de outro Subprocedimento.
Usando a declaração de chamada
Você também pode usar a declaração de chamada antes do nome do procedimento, para tornar seu código mais fácil de ler. No entanto, isso não tem nenhum efeito sobre como o código é executado ou armazenado.
1234 | Sub TestRoutine ()Chamar RunRoutine1Chamar RunRoutine2End Sub |

Chamando um Sub com Argumentos
Também é possível chamar um sub com argumentos
1234 | Sub TestRoutine ()RunRoutine1 ("Melanie")RunRoutine2 ("Tenha um lindo dia")End Sub |
123 | Sub RunRoutine1 (strName as String)MsgBox "Bom dia" & "& strNomeEnd Sub |
123 | Sub RunRoutine2 (strMessage as String)MsgBox "A data de hoje é" & Formato (Data, "mm / dd / aaaa") & VbCrLf & strMessageEnd Sub |

Chamando um Sub com Argumentos Nomeados
Se você nomear seus argumentos, não precisa passá-los na mesma ordem para suas sub-rotinas.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Como vai você?", StrName: = "Melanie"End Sub |
123 | Sub RunRoutine1 (strNome como String, strGreeting como stringMsgBox "Bom dia" & "& strNome & vbCrLf & strGreetingEnd Sub |
