Excel VBA: отображение миллисекунд с высокой точностью

Чтобы отобразить миллисекунды с высокой точностью в Excel VBA, вы можете использовать следующие методы:

Метод 1: использование функции таймера
Функция таймера возвращает количество секунд, прошедших с полуночи. Умножив его на 1000, вы получите миллисекунды. Вот пример:

Sub DisplayMilliseconds()
    Dim startTime As Double
    Dim milliseconds As Double

    startTime = Timer
    ' Perform your code or calculations here

    milliseconds = (Timer - startTime) * 1000
    MsgBox "Elapsed time in milliseconds: " & milliseconds
End Sub

Метод 2: использование функции Timer API
Функция Timer API обеспечивает таймер более высокой точности, позволяя измерять временные интервалы в миллисекундах. Вот пример:

Option Explicit
Private Declare PtrSafe Function GetTickCount64 Lib "kernel32" () As LongPtr
Sub DisplayMilliseconds()
    Dim startTime As LongPtr
    Dim milliseconds As LongPtr

    startTime = GetTickCount64
    ' Perform your code or calculations here

    milliseconds = GetTickCount64 - startTime
    MsgBox "Elapsed time in milliseconds: " & milliseconds
End Sub

Метод 3: использование функций API Timer и QueryPerformanceCounter
Этот метод сочетает в себе функцию Timer и функцию API QueryPerformanceCounter для достижения еще большей точности. Вот пример:

Option Explicit
Private Declare PtrSafe Function QueryPerformanceCounter Lib "kernel32" (ByRef lpPerformanceCount As Currency) As Long
Private Declare PtrSafe Function QueryPerformanceFrequency Lib "kernel32" (ByRef lpFrequency As Currency) As Long
Sub DisplayMilliseconds()
    Dim startTime As Currency
    Dim endTime As Currency
    Dim frequency As Currency
    Dim milliseconds As Double

    QueryPerformanceFrequency frequency
    QueryPerformanceCounter startTime
    ' Perform your code or calculations here
    QueryPerformanceCounter endTime

    milliseconds = (endTime - startTime) / frequency * 1000
    MsgBox "Elapsed time in milliseconds: " & milliseconds
End Sub