Código de pausa en VBA

Incluso me pregunto, cómo sería genial si pudiéramos ejecutar el código según nuestro tiempo lo permita, porque hasta ese momento podríamos completar el otro trabajo y preparar esos datos para otro trabajo. Esta es la necesidad de cualquier tipo de tareas en las que necesitemos ejecutar un conjunto de código y trabajar en otras cosas según los requisitos del código y hasta que se ejecute la otra parte del código, estaríamos listos con los datos que necesitamos procesar con el mismo código Esto se puede hacer con la aplicación Sleep and Wait de VBA. Al dormir y esperar, podemos pausar el código en cualquier momento. El tiempo puede ser en segundos o el tiempo según el reloj.

Sintaxis de pausa de VBA en Excel

La sintaxis para la pausa de VBA es la siguiente:

Ejemplos para pausar el código VBA en Excel

A continuación se muestran los diferentes ejemplos para pausar el código VBA en Excel.

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

Ejemplo # 1 - Pausa VBA

En este ejemplo, veremos cómo funciona VBA Wait. Como podemos ver, la aplicación Wait permite que Time sea ​​booleano. Lo que significa que si el valor que alimentamos es correcto, lo obtendríamos como VERDADERO o FALSO.

Para ver cómo funcionará VBA Pause con la aplicación Wait en VBA,

Paso 1: Primero, necesitaríamos un Módulo donde escribiremos el código para esto. Vaya al menú Insertar y seleccione la opción desplegable Módulo de como se muestra a continuación.

Paso 2: Ahora escriba la subcategoría en el nombre de Pausa VBA o en cualquier otro nombre según su elección como se muestra a continuación.

Código:

 Sub VBAPause1 () End Sub 

Para la pausa de VBA, necesitamos un conjunto de texto que nos gustaría imprimir con una pausa. ¡Consideremos que el texto sea " Obtener … Establecer … Ir …!" ". Por lo tanto, seleccionaremos 3 celdas diferentes donde guardaremos estas palabras de texto por separado en cada celda.

Paso 3: Seleccione el primer rango de celda como A1 o cualquier otra celda según su elección, y para darle el valor, seleccione la función Valor y asígnele un valor como lo hemos arreglado anteriormente. O elija cualquier valor según su elección.

Código:

 Sub VBAPause1 () Range ("A1"). Value = "Get …" End Sub 

Paso 4: Asigne el resto de los valores de la misma manera que lo hicimos para el primer valor. Aquí estamos eligiendo celdas de A1 a C1 como nuestro rango.

Código:

 Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set …" Range ("C1"). Value = "Go .. !!!" End Sub 

Paso 5: Por casualidad, si ejecutamos el código completo, obtendríamos todos los valores Get. Establece … ¡¡Ve … de una vez de la celda A1 a la C1 como se muestra a continuación.

Paso 6: Ahora, si queremos obtener una pausa entre la pausa completa, tendremos que usar la aplicación Espere como se muestra a continuación. Utilizaremos esta aplicación justo por encima del último rango.

Código:

 Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set …" Application.Wait (Range ("C1"). Value = "Go ..! !! "Fin Sub 

Paso 7: en el soporte de la aplicación Wait podemos escribir el tiempo en formato de 24 horas o en formato AM / PM. Estamos considerando el formato de 24 horas. Ahora escriba la hora en formato HH: MM: SS cuando queremos ejecutar el resto del código después de una pausa.

Código:

 Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set …" Application.Wait ("12: 26: 00") Range ("C1") .Value = "Ir .. !!!" End Sub 

Paso 8: Ahora compila el código y ejecútalo de nuevo. Veremos que en la celda A1 tenemos el valor de la celda como "Obtener …" y aún así el cursor se está ejecutando en espera.

Paso 9: Y una vez que el reloj llegue a las 12:25:00 horas, el resto de los valores de las celdas en las celdas B1 y C1 volverán a aparecer aparentemente como se muestra a continuación.

Ejemplo # 2 - Pausa VBA

Hay otra manera por la cual podemos pausar el código sin agregar o cambiar el tiempo en la aplicación Esperar varias veces. Para esto, nos referiríamos al mismo código que hemos visto en el ejemplo-1.

Paso 1: Ahora en el soporte de la aplicación Wait, escriba Now () con TimeValue que queremos dar. Consideremos la pausa de 30 segundos.

Código:

 Sub VBAPause2 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set …" Application.Wait (Now () + TimeValue ("00:00:30") ) Rango ("C1"). Valor = "Ir .. !!!" End Sub 

Paso 2: Entonces, cuando ejecutamos el código, VBA considerará la hora actual y agregará una pausa de 30 segundos. Y funcionará de manera similar a como funcionó en el ejemplo-1. Para verificar, ejecute el código.

Primero, obtendremos el primer valor de celda en A1.

Y después de 30 segundos de pausa, dará el resto de los valores en las celdas B1 y C1.

Ejemplo # 3 - Pausa VBA

En este ejemplo, veremos cómo funciona VBA Pause con la aplicación Sleep . A continuación se muestra la sintaxis de la aplicación Sleep que permite ByVal dwMilliseconds solo como LongPtr .

Ahora, este valor está realmente en VBA. Necesitamos ingresar el código preconstruido que está disponible en MS Docs como se muestra a continuación.

Paso 1: ahora escriba la subcategoría para la pausa de VBA como se muestra a continuación.

Código:

 Sub VBAPause3 () End Sub 

Paso 2: para esto, necesitaríamos definir 2 variables para el tiempo de inicio y de reposo como cadena, como se muestra a continuación.

Código:

 Sub VBAPause3 () Dim Inicio como cadena Dim Sleeping como String End Sub 

Paso 3: Asigne la función de tiempo a la primera variable que se está iniciando .

Código:

 Sub VBAPause3 () Inicio tenue como cadena Inicio tenue como cadena Inicio = Fin de tiempo Sub 

Paso 4: Y use Msgbox para ver el valor almacenado en la variable de Inicio.

Código:

 Sub VBAPause3 () Dim Start como cadena Dim Sleeping As String Starting = Time MsgBox Starting End Sub 

Paso 5: Ahora usa la aplicación Sleep y asigna la cantidad de milisegundos hasta que queramos dormir las funciones.

Código:

 Sub VBAPause3 () Dim Start como String Dim Sleeping como String Starting = Time MsgBox Starting Sleeping = Time End Sub 

Paso 6: ahora de manera similar, dele la aplicación Time a la segunda variable Sleeping . Y use MsgBox para ver el valor almacenado en la variable Sleeping como se muestra a continuación.

Código:

 Sub VBAPause3 () Dim Inicio como cadena Dim Sleeping como cadena Inicio = Tiempo MsgBox Start Sleeping = Tiempo MsgBox Sleeping End Sub 

Por último, compile el código y ejecútelo haciendo clic en el botón Reproducir ubicado debajo de la barra de menú como se muestra a continuación. Obtendremos el cuadro de mensaje con el tiempo que será nuestro tiempo de inicio .

Una vez que hagamos clic en Aceptar, después de 5000 milisegundos, veremos otro cuadro de mensaje con Tiempo de sueño como se muestra a continuación.

El momento de dormir comenzará justo después de hacer clic en el botón Aceptar. No es la diferencia horaria entre el tiempo de inicio y el de sueño. De hecho, es el momento después de hacer clic en el botón Aceptar de un primer cuadro de mensaje.

Ventajas de la pausa de VBA

  • Es muy útil cuando tenemos múltiples funciones para realizar con algún intervalo de tiempo.
  • Esto se puede utilizar en análisis y fines de cálculo.

Cosas para recordar

  • Un proceso como la pausa de VBA no se puede hacer grabando la macro.
  • Siempre es mejor usar el proceso que se muestra en el ejemplo 2 para la aplicación Wait, donde estaremos a salvo de cambiar la hora una y otra vez en lugar de mantener la pausa de algunos segundos después de la hora actual.
  • La aplicación de suspensión del ejemplo 3 solo permite milisegundos
  • El código de preconstrucción que se muestra al comienzo del ejemplo-3 es una parte importante para aplicar, ya que satisfará la sintaxis de la aplicación Sleep.

Artículos recomendados

Esta es una guía para la pausa de VBA. Aquí discutimos cómo podemos pausar el código en cualquier momento usando la aplicación Wait and Sleep. También puede consultar nuestros otros artículos sugeridos:

  1. ¿Cómo utilizar la función VBA IsNumeric?
  2. Crear cuadro combinado en Excel
  3. Insertar CheckBox en Excel
  4. Función VASE UCASE en Excel

Categoría: