Temporizador de VBA

Función Excel VBA TIMER

VBA Timer es una función incorporada que se utiliza para darnos el valor fraccional de segundos, es una función muy útil que se utiliza para pausar a veces cualquier conjunto de códigos en ejecución o reanudarlos en función del tiempo proporcionado por el usuario, el temporizador es simplemente utilizado como una declaración en VBA con la entrada de tiempo.

En términos simples, el TEMPORIZADOR da el número total de segundos transcurridos desde la medianoche del día actual. Desde la línea uno del código, podemos rastrear el tiempo consumido por nuestro código para completar el proceso especificado en el subprocedimiento.

A veces, cuando escribe un código y desea probar la duración del código, es decir, cuál es el tiempo total que tarda su código en completar el subprocedimiento. Al probar la duración real que toma su código, puede hacer que su código sea eficiente y eliminar el proceso que consume mucho tiempo al eliminar los códigos no deseados o largos de su módulo.

¿Cómo usar la función TIMER en VBA?

Como dije, la función TIMER devuelve el total de segundos transcurridos desde la medianoche de la fecha actual. Cuando estoy escribiendo este artículo, la hora es 13:50:45 en India.

Creé un nombre de macro y asigné el valor de TIMER en el cuadro de mensaje de VBA.

Código:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Cuando ejecuto este código, obtengo el resultado como 50480.08.

Este es el total de segundos transcurridos desde la medianoche de hoy, es decir, desde las 12:00:00 a.m.

Entonces, desde la medianoche de las 12 hasta la hora actual 14:01:20, han pasado un total de 14 horas 1 minuto 20 segundos. En segundos es igual a 50480.08 que viene dado por nuestra función TIMER.

Ejemplos

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

Ejemplo # 1 - Calcule el tiempo total que toma su código

Ahora realizaremos una codificación simple para probar el tiempo que tarda el VBA en ejecutar el procedimiento. He escrito un código como se muestra en la siguiente imagen.

Código:

 Sub Do_Until_Example1 () Dim ST As Single ST = Temporizador Dim x Tan largo x = 1 Do hasta x = 100000 celdas (x, 1) .Value = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Si ejecuto este código ahora, me mostrará el tiempo total que tarda el VBA en ejecutarse.

Dice 3.058594, el resultado dado por esta función es en segundos, es decir, el tiempo total que toma este código es 3.058 segundos.

Para que use el código, he escrito el siguiente código para usted.

Código:

 Sub Timer_Example1 () Dim StartingTime As Single StartingTime = Timer 'Ingrese su código aquí' Ingrese su código aquí 'Ingrese su código aquí' Ingrese su código aquí MsgBox Timer - StartingTime End Sub 

Utilice lo anterior y escriba su código después del código StartingTime = Timer pero antes del código MsgBox Timer - StartingTime, es decir, en el área verde, debe ingresar su código.

Explicación: En primer lugar, la variable StartingTime = Timer significa que en el momento de ejecutar el código es igual al tiempo transcurrido desde la medianoche hasta el tiempo de ejecución del código.

Temporizador - Hora de inicio: Significa que después de ejecutar el código, ¿cuál es el tiempo transcurrido menos el tiempo registrado al comienzo del código en el tiempo de inicio variable ?

Esto dará la diferencia entre la hora de inicio y la de finalización y devolverá el resultado.

Ejemplo n. ° 2: mostrar el resultado en el formato de hora correcto

Como hemos visto, el resultado que da la función está en segundos pero no en el formato exacto. Sin embargo, podemos aplicar un formato de tiempo VBA al resultado final usando la función FORMAT.

Utilice el siguiente código para ver el resultado en el formato de hora correcto, es decir, formato "hh: mm: ss".

He usado la función FORMAT aquí. El resultado viene dado por (Temporizador - hora de inicio). Lo dividí por el número 86400 para convertirlo en segundos según las reglas de formato de hora, luego apliqué el formato de hora en formato de hora, minuto y segundo.

Ahora, si ejecuto el código, dará el resultado como este.

Entonces, el tiempo total que toma el código es de 3 segundos.

La belleza de este código es que en el momento en que pasa de 60 segundos mostrará el resultado en minutos. Detuve mi código ejecutándose por un minuto (usando Ctrl + Break) y veo el resultado.

Entonces, el tiempo total que toma este código ahora es de 1 minuto 2 segundos.

Ejemplo n. ° 3: código alternativo al temporizador

Existe una alternativa a TIMER usando la función NOW () . A continuación se muestra el código alternativo.

Cosas para recordar

  • La función TEMPORIZADOR dejará el valor al final del día, es decir, a las 11:59:59 PM.
  • La función AHORA devuelve la fecha actual y la hora actual.
  • TIMER muestra el total de segundos transcurridos desde la medianoche de la fecha actual.