Public RunWhen As Double
Public Const cRunIntervalSeconds = 1
Public Const cRunWhat = "refresh"
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
procedure:=cRunWhat, schedule:=False
End Sub
Sub refresh()
With Application.WorksheetFunction
Range("B2").Interior.ColorIndex = .RandBetween(1, 56)
End With
Call StartTimer
End Sub