это происходит из-за проблем точности
чутка переделал, как посчитал корректным (по моему мнению, конечно)
[vba]Код
Sub TimerStart()
UserForm1.Label2.Caption = Format(iTimer, "h:nn:ss") 'Format(iTimer, "hh:nn:ss") 'ПРИМЕР 2 ===========================================
If Not st Then Exit Sub
If Round(iTimer - iTimer_2, 10) > 0 Then 'Or iTimer = iTimer_2
iTimer = iTimer - TimeValue("0:00:01") 'TimeValue("0:00:01")
Application.OnTime Now + TimeValue("00:00:01"), "TimerStart"
Else
Debug.Print iTimer > iTimer_2, iTimer * 1000 ' здесь может быть как True, так и False в зависимости от начального времени
MsgBox ("Время вышло")
Unload UserForm1
End If
End Sub
[/vba]