VBA Call Sub - ¿Cómo llamar a Sub en Excel VBA? (Con ejemplos)

Tabla de contenido:

Anonim

Introducción a Excel VBA Call Sub

En VBA, tenemos una función como CALL, que se usa para llamar los valores almacenados en otra Subcategoría o Sub procedimiento. Supongamos que hemos escrito un código en algún lugar de un libro de trabajo, ahora mientras escribimos otro código necesitamos el mismo código escrito anteriormente. Entonces, en lugar de volver a escribir el mismo código, podemos llamar a ese código completo o procedimiento Sub en la subcategoría o procedimiento Sub actual. Con esto puede evitar hacer la misma actividad del libro de trabajo una y otra vez.

¿Cómo llamar a Sub en Excel VBA?

A continuación se muestran los diferentes ejemplos para llamar a Sub en Excel VBA:

Puede descargar esta plantilla Sub Excel de llamadas de VBA aquí - Plantilla Sub Excel de llamadas de VBA

Excel VBA Call Sub - Ejemplo # 1

Primero, veamos un solo ejemplo en el que LLAMAREMOS a una subcategoría o procedimiento de código ya escrito. Para esto, necesitamos un módulo.

Vaya a la ventana de VBA y en la opción de menú Insertar, haga clic en Módulo como se muestra a continuación.

Después de eso, obtendremos una página o ventana en blanco del Módulo. Ahora en eso escriba una subcategoría de código que estamos realizando o en cualquier otro nombre como se muestra a continuación.

Código:

 Sub llamada () Fin Sub 

Ahora use un comando del cuadro de mensaje y escriba cualquier texto o palabra que desee ver en el cuadro de mensaje. Aquí estamos usando " Primero " como se muestra a continuación.

Código:

 Sub Calling () MsgBox ("First") End Sub 

Ahora compile el código y ejecútelo haciendo clic en el botón Reproducir que se encuentra debajo de la barra de menú. Veremos un cuadro de mensaje que contiene el mensaje " Primero " como se muestra a continuación.

Ahora, después del Fin en el mismo módulo, escriba otra Subcategoría o procedimiento en cualquier nombre como se muestra a continuación.

Código:

 Sub Arriving () End Sub 

En eso, nuevamente use el comando MsgBox y dele un mensaje o texto según su elección. Aquí le hemos dado " Segundo " como se muestra a continuación.

Código:

 Sub Arriving () MsgBox ("Second") End Sub 

Ahora, si ejecutamos el código completo, obtendremos la salida de la última Subcategoría, que es un cuadro de mensaje que contiene el mensaje " Segundo " como se muestra a continuación.

Aquí viene la función CALL, que usaremos para llamar a ambos mensajes uno por uno. Esto se usará en la primera subcategoría.

Para este tipo, llame a la primera subcategoría antes de Fin, seguido del nombre de esa subcategoría cuyo código queremos llamar. En lo sucesivo, MsgBox, usamos Call seguido de Arriving, que es el nombre de la subcategoría del código escrito a continuación.

Código:

 Sub Calling () MsgBox ("Primero") Llamada de llegada Fin Sub Sub Arriving () MsgBox ("Segundo") Fin Sub 

Ahora compile el código completo de principio a fin y ejecútelo. Veremos el cuadro de mensaje con el mensaje "Primero". Ahora haga clic en Ok para continuar. Una vez que lo hagamos, obtendremos el segundo cuadro de mensaje que contiene el mensaje " Segundo " como se muestra a continuación. Y si vuelve a hacer clic en Aceptar, saldrá del procedimiento.

¿Qué sucede si cambiamos la posición de la función de llamada desde antes de finalizar hasta después de la primera subcategoría como se muestra a continuación? Ahora deje ejecutar el código completo nuevamente.

Código:

 Sub Llamada () Llamada que llega MsgBox ("Primero") Fin Sub Sub Llegada () MsgBox ("Segundo") Fin Sub 

Aparecerá el mensaje almacenado en el segundo subproceso primero, que es " Segundo ", seguido del mensaje " Primero " cuando haga clic en Aceptar como se muestra a continuación.

Entonces, todo depende de nosotros, a qué subcampo o categoría queremos llamar primero.

Excel VBA Call Sub - Ejemplo # 2

Veamos otro ejemplo donde usaremos una función de Llamada para llamar a diferentes subcategorías. Para esto, necesitamos un nuevo módulo. Abra un módulo desde el menú Insertar. Y le da una Subcategoría en cualquier nombre como se muestra a continuación.

Código:

 Sub VBACall () End Sub 

Defina 3 variables Num1, Num2 y Ans1 en DIM y luego asigne con Long . Podemos usar Integer o Double también, dependiendo del uso de cada uno. Long nos permitirá considerar cualquier longitud de número.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Como Long End Sub 

Ahora dé a Num1 y Num2 cualquier número de su elección. Les hemos dado 100 y 50 respectivamente. Considerar 100 y 50 nos ayudará a identificar la salida rápidamente.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Como Long Num1 = 100 Num2 = 50 End Sub 

Ahora use la fórmula de multiplicación para multiplicar los almacenes de números en Num1 y Num2 y almacene su respuesta en la variable Ans1 como se muestra a continuación.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Como Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub 

En la siguiente línea de código, utilizaremos el objeto VBA. Para esto, seleccione la hoja con el comando Hoja de trabajo y dele un rango de cualquier celda. Hemos seleccionado la celda de rango como B1. Y finalmente imprima el resultado con cualquier nombre como Resultado o Respuesta como se muestra a continuación.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Tan largo Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Hojas de trabajo (1). Rango ("B1"). Valor = "Respuesta" Fin Sub 

Ahora dele la ubicación donde queremos ver la respuesta de la misma manera que se muestra arriba. Aquí estamos eligiendo la celda C1 como celda de salida y colocamos la última variable Ans1 aquí.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Tan largo Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Hojas de trabajo (1). Rango ("B1"). Valor = "Respuesta" Hojas de trabajo (1). Rango ("C1"). Valor = Ans1 End Sub 

Ahora ejecuta el código. Veremos un resultado de multiplicación en la celda C1.

Escribir otra subcategoría debajo del mismo código después de Fin.

Código:

 Sub VBACall2 () End Sub 

Nuevamente defina 3 variables Num3, Num4 y Ans2 en DIM y luego asigne con Long.

Código:

 Sub VBACall2 () Dim Num3 Tan largo Dim Num4 Tan largo Dim Ans2 Como Long End Sub 

Dale a Num3 y Num4 los mismos valores como 100 y 50 y suma ambos números.

Código:

 Sub VBACall2 () Dim Num3 Tan largo Dim Num4 Tan largo Dim Ans2 Tan largo Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Fin Sub 

Ahora use el objeto VBA de una manera similar a la utilizada anteriormente y luego asigne la celda de rango como B2 para Respuesta y C2 para la salida de Ans2 .

Código:

 Sub VBACall2 () Dim Num3 Tan largo Dim Num4 Tan largo Dim Ans2 Tan largo Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Hojas de trabajo (1). Rango ("B2"). Valor = "Respuesta" Hojas de trabajo (1). Rango ("C2"). Valor = Ans2 End Sub 

Para llamar a ambos resultados uno por uno, use la función de Llamada que le da el nombre de la 2da Subcategoría como se muestra a continuación.

Código:

 Sub VBACall () Dim Num1 Tan largo Dim Num2 Tan largo Dim Ans1 Tan largo Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Hojas de trabajo (1). Rango ("B1"). Valor = "Respuesta" Hojas de trabajo (1). Rango ("C1"). Valor = Ans1 Llamada VBACall2 End Sub Sub VBACall2 () Dim Num3 Tan largo Dim Num4 Tan largo Dim Ans2 Tan largo Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Hojas de trabajo (1). Rango ("B2" ) .Value = "Answer" Hojas de trabajo (1) .Range ("C2"). Value = Ans2 End Sub 

Ahora compile todo el código y ejecútelo. Seremos los primeros en la celda C2, obtuvimos el resultado de la multiplicación y en la celda C3, un resultado de la suma.

Para conocer la secuencia adecuada, podemos usar el comando MsgBox como se usa en el Ejemplo-1 y ver qué valores se llaman a qué secuencia.

Pros de Excel VBA Call Sub

  • VBA Call Sub ahorra tiempo al escribir el mismo código una y otra vez.
  • Llamar al almacén de subprocedimientos de VBA en el mismo Excel también reduce el tamaño del archivo de Excel.

Cosas para recordar

  • Use el cuadro de mensaje para fines de prueba para ver la ejecución secuencial de múltiples códigos.
  • Compile las líneas de código más grandes presionando la tecla F8 para que se pueda identificar la parte del error.
  • Guarde el archivo en formato Macro Habilite Excel para retener el código escrito.
  • Usar CALL antes de End ejecutará el primer código primero y después del primer Subprocedimiento ejecutará primero el segundo código.

Artículos recomendados

Esta es una guía para VBA Call Sub. Aquí discutimos cómo llamar a Sub en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA hacer hasta bucle
  2. SUBTOTAL Fórmula en Excel
  3. VBA While Loop
  4. Función de subcadena de Excel