Мой код таймера обратного отсчета позволяет ему сработать только один раз, как я могу решить эту проблему? - PullRequest
0 голосов
/ 18 июня 2020

Я попытался написать код таймера обратного отсчета, используя VBA, и, похоже, у него есть работа в определенной степени. Код позволяет выполнить полный обратный отсчет до 00:00:00, а затем показывает «Время истекло» в окне сообщения. Однако сообщение об ошибке «Ошибка выполнения 1004» всегда будет появляться немедленно

Public ScheduleCount As Date
Public Stop VariableX As Range
Public FlasherTime As Range

Sub Timer()
Set StopVariable X = Application.ActiveSheet.Range("G9")
Set FlasherTime = Application.ActiveSheet.Range("L10")
ScheduleCount = Now + TimeValue("00:00:01")
Application.OnTime ScheduleCount, "Countdown"

End Sub

Sub Countdown()

Dim TimingLeft As Range
Set TimingLeft = Application.ActiveSheet.Range("B9")
TimingLeft.Value = TimingLeft.Value - TimeSerial(0,0,1)

IfStopVariableX = 0 Then
Call Timer
Else
Exit Sub
End If

If TimingLeft.Value < FlasherTime.Value Then
Range("B9").Font.Color = RGB(255,0,0)
Counter.Label1.ForeColor = RGB(255,0,0)
End If

If TimingLeft.Value=0 Then
Counter.Label1.Caption = "Time's Up"
Exit Sub
End If

Counter.Label1.Caption=Format(Sheets("Sheet1").Range("B9").Value,"hh:mm:ss")
'UserForm1.Show'

End Sub

Sub Stopper()

Set StopVariableX = Application.ActiveSheet.Range("F9")

End Sub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...