Да, вы можете использовать Application.OnTime
для этого и затем поместить его в цикл. Это что-то вроде будильника, когда вы нажимаете кнопку повтора, когда хотите, чтобы она снова зазвонила. Следующее обновляет ячейку A1 каждые три секунды со временем.
Dim TimerActive As Boolean
Sub StartTimer()
Start_Timer
End Sub
Private Sub Start_Timer()
TimerActive = True
Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
End Sub
Private Sub Stop_Timer()
TimerActive = False
End Sub
Private Sub Timer()
If TimerActive Then
ActiveSheet.Cells(1, 1).Value = Time
Application.OnTime Now() + TimeValue("00:00:03"), "Timer"
End If
End Sub
Вы можете поместить процедуру StartTimer
в ваше событие Auto_Open
и изменить то, что делается в процедуре Timer
(сейчас это просто обновление времени в A1 на ActiveSheet.Cells(1, 1).Value = Time
).
Примечание : вам понадобится код (кроме StartTimer
) в модуле, а не в модуле рабочего листа. Если он есть в модуле рабочей таблицы, код требует небольшой модификации.