Кнопка для остановки сабов с OnTime Macro не останавливается - PullRequest
0 голосов
/ 24 января 2019

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

Dim NextTime As Double

Sub RecordData()
    Dim Interval As Double
    Dim cel As Range, Capture As Range

    Application.StatusBar = "Recording Started"
    Set Capture = Worksheets("Dashboard").Range("C5:K5") 'Capture this row 
    of data
    With Worksheets("Journal") 'Record the data on this worksheet
    Set cel = .Range("A2") 'First timestamp goes here
    Set cel = .Cells(.Rows.Count, cel.Column).End(xlUp).Offset(1, 0)
    cel.Value = Now
    cel.Offset(0, 1).Resize(1, Capture.Cells.Count).Value = Capture.Value
    End With
    NextTime = Now + TimeValue("00:01:00")
    Application.OnTime NextTime, "CloseWB"
End Sub

Sub CloseWB()
    Application.OnTime NextTime, "RecordData"
    ThisWorkbook.Close True
End Sub

Sub StopRecordingData()
    Application.StatusBar = "Recording Stopped"
    Application.OnTime NextTime, "RecordData", False
    Application.OnTime NextTime, "CloseWB", False
End Sub

1 Ответ

0 голосов
/ 24 января 2019

Вы должны либо

  • используйте 2 запятых в конце или
  • полное определение метода OnTime

как синтаксис Метод OnTime имеет 4 аргумента, а последние 2 необязательны.

Application.OnTime Самое раннее время, Процедура, [ LatestTime ], [ Расписание ]

Кроме того, для переменных, связанных со временем, предпочитайте DATE, а не DOUBLE. Следовательно используйте это наверху.

Dim NextTime as Date

Sub StopRecordingData()
    Application.StatusBar = "Recording Stopped"
    Application.OnTime NextTime, "RecordData",, False
    Application.OnTime NextTime, "CloseWB",, False
End Sub

Sub StopRecordingData()
    Application.StatusBar = "Recording Stopped"
    Application.OnTime EarliestTime:=NextTime, Procedure:="RecordData", Schedule:=False
    Application.OnTime EarliestTime:=NextTime, Procedure:="CloseWB", Schedule:=False
End Sub
...