У меня есть макрос VBA, который запускает таймер для каждой ячейки, на которую я нажимаю, используя кнопки запуска, остановки и сброса. Но в тот момент, когда я нажимаю на другую ячейку на листе (таким образом, меняя активную ячейку), мой таймер на предыдущей ячейке автоматически останавливается.

Я хочу, чтобы это продолжалось до тех пор, пока я не скажу ему прекратить использовать кнопку остановки.

Я публикую код ниже и надеюсь, что вы, ребята, сможете взглянуть на него и, возможно, помочь этому новичку :)

Dim StopTimer           As Boolean
Dim SchdTime            As Date
Dim Etime               As Date
Const OneSec            As Date = 1 / 86400#


 Private Sub StartBtn_Click()

   Etime = 0

   Selection.Interior.ColorIndex = 6
   StopTimer = False
   SchdTime = Now()
   Selection.Value = Format(Etime, "hh:mm:ss")

   Application.OnTime SchdTime + OneSec, "Sheet1.NextTick"

End Sub


Private Sub ResetBtn_Click()
    Selection.Interior.ColorIndex = -4142
    StopTimer = True
    Etime = 0
    Selection.Value = "00:00:00"
End Sub


Private Sub StopBtn_Click()
    Selection.Interior.ColorIndex = 4
    StopTimer = True
    Beep
End Sub

Sub NextTick()

   If StopTimer Then
   'Dont Reschedule Update

   ElseIf Selection.Interior.ColorIndex = 6 Then
      Selection.Value = Format(Etime, "hh:mm:ss")
      SchdTime = SchdTime + OneSec
      Application.OnTime SchdTime, "Sheet1.NextTick"
      Etime = Etime + OneSec
   End If

End Sub

0