【问题标题】:Creaing a VBA timer counter with milliseconds in excel 2007在 excel 2007 中创建以毫秒为单位的 VBA 计时器计数器
【发布时间】:2016-12-27 07:46:50
【问题描述】:

我有一个这样的计时器:

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

计时器增加一秒,但我喜欢它也显示毫秒

【问题讨论】:

    标签: excel timer milliseconds vba


    【解决方案1】:

    TimeValue() 函数只能计算秒数。如我所见,您正在使用 Application.OnTime 函数等待 1 sek。您也可以使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2012-11-15
      • 2013-05-24
      相关资源
      最近更新 更多