Dim TimeToRun 'глобальная переменная, где хранится следующее время запуска
'это главный макрос
Sub MyMacro()
Application.Calculate 'пересчитываем книгу
Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'заливаем ячейку А1 случайным цветом :)
Call NextRun 'запускаем макрос NextRun для назначения след.времени запуска
End Sub
'этот макрос назначает время следующего запуска главного макроса
Sub NextRun()
TimeToRun = Now + TimeValue("00:00:03") 'прибавляем к текущему времени 3 сек
Application.OnTime TimeToRun, "MyMacro" 'назначаем следующий запуск
End Sub
'макрос для запуска последовательности повторений
Sub Start()
Call NextRun
End Sub
'макрос для остановки последовательности повторений
Sub Finish()
Application.OnTime TimeToRun, "MyMacro", , False
End Sub