Este tutorial le enseñará cómo llamar a un subprocedimiento desde dentro de otro subprocedimiento en VBA
Es muy útil escribir código que se pueda usar repetidamente y llamar desde múltiples subprocedimientos en su proyecto; puede ahorrar una enorme cantidad de tiempo y hace que el código VBA sea mucho más eficiente.
Ejecución de un subprocedimiento desde otro subprocedimiento
Considere los 3 subprocedimientos a continuación:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2End Sub |
123 | Sub RunRoutine1 ()MsgBox "Buenos días"End Sub |
123 | Sub RunRoutine2 ()MsgBox "La fecha de hoy es" & Formato (Fecha, "mm / dd / aaaa")End Sub |
Si ejecutamos el Sub Procedimiento - TestRoutine - llamará RunRoutine1 y RunRoutine2 y aparecerán 2 cuadros de mensaje.

No hay límite en la cantidad de Subprocedimientos a los que puede llamar desde otro Subprocedimiento.
Uso de la declaración de llamada
También puede utilizar la declaración de llamada delante del nombre del procedimiento, para que su código sea más fácil de leer. Sin embargo, no tiene ningún efecto sobre cómo se ejecuta o almacena el código.
1234 | Sub TestRoutine ()Llamar a RunRoutine1Llamar a RunRoutine2End Sub |

Llamar a un sub con argumentos
También es posible llamar a un sub con argumentos
1234 | Sub TestRoutine ()RunRoutine1 ("Melanie")RunRoutine2 ("Que tengas un hermoso día")End Sub |
123 | Sub RunRoutine1 (strName como cadena)MsgBox "Buenos días" & "& strNameEnd Sub |
123 | Sub RunRoutine2 (strMessage como cadena)MsgBox "La fecha de hoy es" & Formato (Fecha, "mm / dd / aaaa") & VbCrLf & strMessageEnd Sub |

Llamar a un sub con argumentos con nombre
Si nombra sus argumentos, no tiene que pasarlos en el mismo orden a sus subrutinas.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "¿Cómo estás?", StrName: = "Melanie"End Sub |
123 | Sub RunRoutine1 (strName como cadena, strGreeting como cadenaMsgBox "Buenos días" & "& strName & vbCrLf & strGreetingEnd Sub |
