Excel windows定时器vba更改速度
我正在使用VBA中的windows计时器API每0.5s处理一次sub。我希望能够在计时器运行时更改timerproc速度。不幸的是,StartTimer sub在开始时只调用一次。关于如何修改代码以改变速度(比如0.25秒)有什么想法吗Excel windows定时器vba更改速度,excel,vba,winapi,timer,Excel,Vba,Winapi,Timer,我正在使用VBA中的windows计时器API每0.5s处理一次sub。我希望能够在计时器运行时更改timerproc速度。不幸的是,StartTimer sub在开始时只调用一次。关于如何修改代码以改变速度(比如0.25秒)有什么想法吗 通过调用SetTimer创建计时器时,将一次性指定计时器间隔。如果需要修改间隔,则需要先调用KillTimer重新创建计时器,然后使用新间隔调用SetTimer。对代码进行以下修改 Public TimerID As Long Public TimerSeco
通过调用
SetTimer
创建计时器时,将一次性指定计时器间隔。如果需要修改间隔,则需要先调用KillTimer
重新创建计时器,然后使用新间隔调用SetTimer
。对代码进行以下修改
Public TimerID As Long
Public TimerSeconds As Single
Public TimerRunning As Boolean
Sub stopTimer()
On Error Resume Next
KillTimer 0&, TimerID
TimerRunning = False
End Sub
Sub StartTimer(Optional RerunSpeed As Double = 0.5)
If TimerRunning Then stopTimer
TimerSeconds = RerunSpeed
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
TimerRunning = True
End Sub
您可以使用备用时间间隔对StartTimer
子过程进行后续调用。如果计时器当前处于活动状态,它将停止并以新的间隔恢复;e、 g.StartTimer 0.25
Public TimerID As Long
Public TimerSeconds As Single
Public TimerRunning As Boolean
Sub stopTimer()
On Error Resume Next
KillTimer 0&, TimerID
TimerRunning = False
End Sub
Sub StartTimer(Optional RerunSpeed As Double = 0.5)
If TimerRunning Then stopTimer
TimerSeconds = RerunSpeed
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
TimerRunning = True
End Sub