在excel 2007中创建带毫秒的VBA计时器计数器

在excel 2007中创建带毫秒的VBA计时器计数器,excel,timer,milliseconds,vba,Excel,Timer,Milliseconds,Vba,我有一个计时器计数器,如下所示: Dim SchedRecalc As Date Sub Recalc() With Sheet8.Range("A1") .Value = Format(Time, "hh:mm:ss AM/PM") End With Call SetTime End Sub Sub SetTime() SchedRecalc = Now + TimeValue("00:00:01") Application.OnTime Sche

我有一个计时器计数器,如下所示:

Dim SchedRecalc As Date

Sub Recalc()

With Sheet8.Range("A1")    
    .Value = Format(Time, "hh:mm:ss AM/PM")    
End With

Call SetTime

End Sub


Sub SetTime()

SchedRecalc = Now + TimeValue("00:00:01")    
Application.OnTime SchedRecalc, "Recalc"

End Sub


Sub Disable()

On Error Resume Next

Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False

End Sub
计时器增加1秒,但我希望它也显示毫秒。

函数的
TimeValue()
只能计算秒数。如我所见,您正在使用
Application.OnTime
函数等待1sek。您也可以通过
Sleep()
来实现这一点,您可以从内核库获得它。尝试此操作(仅适用于Windows):

Option Explicit

#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Sub test()

    MsgBox "Wait 10 sek"
    Sleep (10000)
    MsgBox "Now wait 10 milisek"
    Sleep (10)
    MsgBox "Ok"

End Sub