¿cómo utilizar los comandos de espera y suspensión en vba?
Comando de espera de VBA
En VBA, el comando (método) WAIT te ayuda a esperar todas las actividades que estás realizando en Excel durante un tiempo determinado o hasta un tiempo específico. En pocas palabras, puede hacer que VBA espere unos segundos, minutos o incluso horas, o hasta una hora determinada. Tiene un argumento que requiere que lo especifiques.
Pasos para usar VBA Esperar
- Primero, use la palabra clave «Aplicación» y escriba un punto (.) para obtener la lista de propiedades y métodos.
- Después de eso, seleccione o toque el método «Esperar».
- Ahora especifique el argumento «Tiempo» para indicarle a VBA cuánto tiempo desea esperar.
- Al final, ejecute el código para poner en cola todas las actividades en Excel.
En este código, usó AHORA y TIMEVALUE ( Funciones VBA ) para indicarle a VBA que espere diez segundos desde el momento en que ejecuta el código. Entonces, una vez transcurridos los diez segundos, la declaración IF probará la condición y se ejecutará mostrándole un cuadro de mensaje con el mensaje «Esperar».
Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub
También puede utilizar el método Esperar para permitir que Excel espere todas las actividades hasta un momento específico. El siguiente código espera hasta la 1:00 pm Entonces, dado que son las 12:52 en mi sistema en este momento, esta línea de código hará que espere los próximos 8 minutos.
Application.Wait "13:00:00"
Nota: Con el método de espera, solo puedes esperar al menos un segundo.
Dormir VBA
La suspensión es una función de Windows ( en archivos DLL de Windows; debe importar esta función mediante una instrucción de código ) que puede ayudarlo a pausar o agregar un retraso al ejecutar una macro . En esta función puedes especificar el tiempo en milisegundos, pero no puedes detener la función de suspensión una vez que haya pausado todo.
Utilice la función de suspensión en VBA
- En primer lugar, debe utilizar la declaración del código para importar la función de suspensión de la » biblioteca kernel32 «.
- Y luego debe asegurarse de agregar la declaración «PtrSafe» si está utilizando Excel de 64 bits.
- Luego necesitas llamar a la función de suspensión en código.
- Al final, especifique el tiempo (milisegundos) que desea retrasar el código.
If VBA7 Then ' For 64-Bit versions of Excel
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Else 'For 32-Bit versions of Excel Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) End If Sub vba_sleep() Sleep (10000) 'add code here MsgBox "Finished" End Sub
En el código anterior tienes 10.000 milisegundos, lo que equivale a 10 segundos. Cuando ejecute este código, lo retrasará durante 10 segundos y luego mostrará un cuadro de mensaje.
Nota: Cuando usa la función de suspensión, detiene todo en Excel durante el tiempo que establezca, ni siquiera puede interrumpirlo. Asegúrese de consultar este enlace de Microsoft sobre la compatibilidad entre las versiones de 32 y 64 bits .