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

La función `Timer` en VBA (Visual Basic for Applications) se usa para obtener el número de segundos transcurridos desde la medianoche. Esto es útil para medir el tiempo de ejecución de una sección de código o para crear retardos con precisión.

Aquí te muestro cómo puedes usar la función `Timer` en VBA:

Medir el Tiempo de Ejecución

Si deseas medir cuánto tarda en ejecutarse una parte específica de tu código, puedes usar `Timer` de la siguiente manera:

Sub MedirTiempoEjecucion()
    Dim tiempoInicio As Single
    Dim tiempoFinal As Single
    Dim tiempoTranscurrido As Single
    
    ' Registrar tiempo de inicio
    tiempoInicio = Timer
    
    ' Aquí va el código cuyo tiempo de ejecución quieres medir
    Dim i As Long
    For i = 1 To 1000000
        ' Solo un bucle de ejemplo
    Next i
    
    ' Registrar tiempo final
    tiempoFinal = Timer
    
    ' Calcular tiempo transcurrido
    tiempoTranscurrido = tiempoFinal - tiempoInicio
    
    ' Mostrar tiempo en pantalla
    MsgBox "El tiempo de ejecución fue de: " & tiempoTranscurrido & " segundos."
End Sub

Crear un Retardo

Para crear un retardo, puedes utilizar la función de esta manera:

Sub CrearRetardo(segundos As Single)
    Dim tiempoObjetivo As Single
    tiempoObjetivo = Timer + segundos
    
    Do While Timer < tiempoObjetivo
        DoEvents ' Esto permite que el sistema procese otros eventos
    Loop
End Sub

Sub PruebaRetardo()
    MsgBox "La espera comienza ahora."
    CrearRetardo 5 ' Esperar 5 segundos
    MsgBox "La espera ha terminado."
End Sub

Consideraciones

If tiempoFinal < tiempoInicio Then
    tiempoTranscurrido = (86400 - tiempoInicio) + tiempoFinal ' 86400 segundos en un día
Else
    tiempoTranscurrido = tiempoFinal - tiempoInicio
End If
  • Precisión: Debido a que `Timer` devuelve segundos como un valor `Single`, es precisa a milisegundos. Sin embargo, su precisión puede estar limitada por la capacidad del sistema para procesar eventos y por el tipo de procesador.
  • Sobre la medianoche: Si utilizas `Timer` para calcular el tiempo transcurrido y el código cruza la medianoche, deberás ajustar tu cálculo, ya que `Timer` se reinicia a 0 al llegar a la medianoche. Puedes manejar este caso comparando los valores y ajustando, como sigue:

Estos ejemplos demuestran cómo puedes implementar la función `Timer` en VBA de manera efectiva. Puedes adaptarlos según tus necesidades específicas.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project