Saltar al contenido

¿Cómo obtener un DateDiff-Value en milisegundos en VBA (Excel)?

No olvides que en la informática un error puede tener diferentes resoluciones, no obstante nosotros mostramos la mejor y más óptimo.

Solución:

Puede usar el método descrito aquí de la siguiente manera: –

Crear un nuevo módulo de clase llamado StopWatch
Pon el siguiente código en el StopWatch módulo de clase:

Private mlngStart As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long

Public Sub StartTimer()
    mlngStart = GetTickCount
End Sub

Public Function EndTimer() As Long
    EndTimer = (GetTickCount - mlngStart)
End Function

Usas el código de la siguiente manera:

Dim sw as StopWatch
Set sw = New StopWatch
sw.StartTimer

' Do whatever you want to time here

Debug.Print "That took: " & sw.EndTimer & "milliseconds"

Otros métodos describen el uso de la función de temporizador VBA, pero esto solo tiene una precisión de una centésima de segundo (centisegundo).

Si solo necesita el tiempo transcurrido en centisegundos, entonces no necesita la API TickCount. Simplemente puede usar el método VBA.Timer que está presente en todos los productos de Office.

Public Sub TestHarness()
    Dim fTimeStart As Single
    Dim fTimeEnd As Single
    fTimeStart = Timer
    SomeProcedure
    fTimeEnd = Timer
    Debug.Print Format$((fTimeEnd - fTimeStart) * 100!, "0.00 "" Centiseconds Elapsed""")
End Sub

Public Sub SomeProcedure()
    Dim i As Long, r As Double
    For i = 0& To 10000000
        r = Rnd
    Next
End Sub

Comentarios y valoraciones

Nos encantaría que puedieras difundir este ensayo si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *