Retorno de VBA

Declaración de devolución de Excel VBA

VBA es maravilloso y un salvavidas para aquellos que conocen la entrada y salida de la codificación VBA, puede ahorrar toneladas de tiempo en nuestro lugar de trabajo. En nuestros artículos anteriores, hemos discutido muchas cosas y conceptos del retorno de VBA. Uno de esos conceptos es la declaración GoSub Return. En este artículo, le presentaremos estos conceptos.

¿Qué es la declaración de devolución de GoSub?

La declaración "Go Sub" significa que irá a la línea de código indicada por la etiqueta a través del nombre y realiza un conjunto específico de la tarea hasta que encuentre la declaración "Return".

Esto es similar a la declaración del manejador de errores "GoTo Label" pero lo que hace "GoSub Return" es que volverá a la siguiente línea de código en lugar de continuar desde el nombre de la etiqueta.

A continuación se muestra la sintaxis de la declaración VBA GoSub Return.

GoSub [Nombre de etiqueta] … .. Línea de código [Nombre de etiqueta]: … .. Línea de código para realizar la tarea

Sé que es difícil de entender al leer la sintaxis, pero con el ejemplo es posible que pueda comprender el concepto.

Antes de pasar a los ejemplos, permítanme contarles algunas cosas sobre esta declaración.

  • La instrucción GoSub llama a la subrutina en vba, que recibe el nombre de una etiqueta dentro de la misma rutina o función.
  • Tanto GoSub como Return deben estar dentro del mismo procedimiento, no podemos llamar a otra macro de subrutina aquí.
  • Puede introducir cualquier número de declaraciones de devolución de GoSub.
  • Una declaración de retorno continuará la ejecución del código desde donde lo dejó antes de saltar al subprocedimiento indicado por un nombre de etiqueta.

¿Cómo usar la declaración de devolución de GoSub en VBA?

Puede descargar esta plantilla de Excel de retorno de VBA aquí - Plantilla de Excel de retorno de VBA

Ejemplo 1

Para comprender el uso de esta declaración, mire primero el código a continuación, luego le explicaré el código línea por línea.

Código:

 Sub Go_Sub_Return () GoSub Macro1 'Nombre de etiqueta1 Macro de GoSub2' Nombre de etiqueta2 Macro de GoSub3 'Nombre de etiqueta3 Salir de Sub Macro1: MsgBox "Ahora ejecutando Macro1" Devolver Macro2: MsgBox "Ahora ejecutando Macro2" Devolver Macro3: MsgBox "Ahora ejecutando Macro3" Volver Fin Sub 

Para entender este código, ejecutemos el código línea por línea presionando la tecla F8. Al presionar la tecla F8 por primera vez, se iniciará la ejecución de la macro.

Ahora presione la tecla F8 una vez más para ir a la siguiente línea.

Todos sabemos que la macro ejecutará el código línea por línea, pero si presiona la tecla F8 no irá a la siguiente línea, sino que funcionará de manera diferente.

Ha saltado a la etiqueta denominada "Macro1", esto se debe a que en la sentencia anterior "GoSub" le hemos indicado a la macro que vaya al nombre de etiqueta del subprocedimiento "Macro1", por lo que ha saltado al nombre de la etiqueta respectiva.

Ahora, al presionar la tecla F8, la macro de Excel ejecutará la tarea de la etiqueta "Macro1" de mostrar el resultado en el cuadro de mensaje.

Haga clic en Aceptar en el cuadro de mensaje para volver a la ventana de codificación.

Ahora ha resaltado la declaración "Retorno" si presiona la tecla F8 una vez más, lo que hará es "Regresar" a la línea anterior de código antes de saltar al nombre de la etiqueta.

La última vez que ejecutó el código "GoSub Macro1" y realizó la tarea de nombre de etiqueta "Macro1" ya que hemos mencionado la declaración "Retorno", está de vuelta a la siguiente línea de código, es decir.

"GoSub Macro2"

Lo que dice la declaración es, "etiqueta de referencia denominada Macro2". A continuación, para la etiqueta "Macro2", he mencionado un conjunto específico de tareas.

Ahora obtendremos la segunda tarea del subprocedimiento de mostrar valor en el cuadro de mensaje.

Ahora haga clic en Aceptar y resaltará la segunda declaración de "Retorno".

Ahora, al hacer clic en la tecla F8, volverá a la siguiente línea de código antes de volver a la etiqueta "Macro2". Ahora resaltará “GoSub Macro3”.

Ahora irá a la etiqueta “Macro3”, presione la tecla F8.

Ahora se ejecutará la tercera tarea de etiqueta.

Ahora haga clic en Aceptar, resaltará la declaración "Devolver".

Ahora, presionando la tecla F8 una vez más, saltará de nuevo a la línea de código "Exit Sub".

No, saldrá de la subrutina. Es necesario agregar la palabra "Exit Sub", de lo contrario se producirá un error.

Ejemplo # 2

Ahora eche un vistazo a un ejemplo más del uso de la declaración GoSub Return.

Código:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Solicitud: = "Ingrese el número aquí", Título: = "Número de división") Si Num> 10 Entonces GoSub Division Else MsgBox "El número es menor que 10" Salir Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub 

Este código le pedirá que ingrese el número que es> 10, si el número es> 10, realizará la tarea de dividirlo por 5 (el nombre de la etiqueta es "División") o, de lo contrario, mostrará el mensaje como "El número es menos de 10".

Cosas para recordar

  • El nombre de la etiqueta debe ser el mismo en GoSub y la declaración de devolución y en la declaración de devolución el nombre de la etiqueta debe ir seguido de dos puntos (:).
  • Siempre use Exit Sub en VBA después de que se realicen todas las declaraciones de devolución para evitar el mensaje de error.