Таймер обратного отсчета с паузой в VBA - PullRequest
0 голосов
/ 18 декабря 2018

Этот код ранее использовался в качестве очень стабильного таймера обратного отсчета без сбоев в обратном отсчете (другие коды отсчета иногда отсчитывают как двойные или тройные отсчеты).

Но кто-нибудь знает, как сделать паузуТаймер обратного отсчета - например, когда люди идут на перерыв в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...