Поместите следующий код в стандартный модуль:
Public RunWhen As Double
Public Const cRunIntervalSeconds = 1
Public Const cRunWhat = "The_Sub"
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
schedule:=True
End Sub
Sub The_Sub()
Application.CalculateFullRebuild
StartTimer
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
procedure:=cRunWhat, schedule:=False
End Sub
Это реализует 1-секундный автоматический перерасчет:
- , чтобы начать, запустить
StartTimer
- до остановки, запустить
StopTimer
Адаптировано с Чип Пирсон