系统自带的now() 、Timer()函数只能获取到秒级的时间值,使用Windows API的winmm.dll中的timeGetTime 就可以获得毫秒级的数值,这个值是从开机到现在的毫秒数。
32位的操作系统在VBA代码的最前面输入下面的代码。
Private Declare Function timeGetTime Lib “winmm.dll” () As Long '32位系统
64位的操作系统在VBA代码的最前面输入下面的代码。
Private Declare PtrSafe Function timeGetTime Lib “winmm.dll” () As Long '64位系统
Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long '定义API函数
Sub TimeGetTime_Demo()
Dim Start_Time As Long ‘定义开始时间
Start_Time = timeGetTime
While timeGetTime < Start_Time + 200 '循环等待
DoEvents '转让控制权,以便让操作系统处理其它的事件
Wend
Debug.Print timeGetTime() - Start_Time '在立即窗口中打印程序运行所用的时间
End Sub`