Этот код ранее использовался в качестве очень стабильного таймера обратного отсчета без сбоев в обратном отсчете (другие коды отсчета иногда отсчитывают как двойные или тройные отсчеты).
Но кто-нибудь знает, как сделать паузуТаймер обратного отсчета - например, когда люди идут на перерыв в 15 минут.Затем я бы хотел, чтобы счетчик остановился на 15 минут, а затем снова запустился с того места, где счетчик остановился.
Когда я использую Application.Wait
, таймер по-прежнему работает сзади в Do While Loop
и не делает паузу.
Sub NewTimer()
Dim Start As Single
Dim Cell As Range
Dim CountDown As Date
Start = Timer
Set Cell = Sheet1.Range("B1") 'This is the starting value.
CountDown = TimeSerial(0, 3, 0) 'Set takttime
Cell.Value = CountDown
Do While Cell.Value > 0
'Update the cell. Timer - Start is the number of seconds
'that have elapsed since we set Start.
If Time >= TimeValue("08:45:00") And Time <= TimeValue("09:00:00") Then 'Pause in 15 minutes
Application.Wait (Now + TimeValue(Range"A14").Text))
ElseIf Time >= TimeValue("11:55:00") And Time <= TimeValue("12:25:00") Then 'Pause in 30 minutes
Application.Wait (Now + TimeValue(Range("A14").Text))
ElseIf Time >= TimeValue("14:00:00") And Time <= TimeValue("14:05:00") Then 'Pause in 5 minutes
Application.Wait (Now + TimeValue(Range("A14").Text))
Else: Cell.Value = CountDown - TimeSerial(0, 0, Timer - Start)
End If
DoEvents
Loop
End Sub