Остановить повторение макроса при использовании Application.OnTime - PullRequest
0 голосов
/ 01 января 2019

Используя приведенный ниже код RefreshData Я запускаю мг макрос каждые 10 секунд.

Я не могу остановить stoprefresh , чтоприсваивается квадратной формы.

Sub RefreshData()
    Application.OnTime Now + TimeValue("00:00:10"), "mg", , True
End Sub

Sub stoprefresh()
    On Error Resume Next
    Application.OnTime Now + TimeValue("00:00:10"), "mg", , False
End Sub

Sub mg()

    ActiveSheet.Cells(ActiveSheet.Cells.Rows.Count, 1).End(xlUp).Offset(1) = "Running"

    Call RefreshData

End Sub

1 Ответ

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

Попробуйте этот код

Option Explicit

Dim iTimerSet As Double
Sub RefreshData()
    iTimerSet = Now + TimeValue("00:00:10")
    Application.OnTime iTimerSet, "mg", , True
End Sub
Sub stoprefresh()
    'On Error Resume Next
    Application.OnTime iTimerSet, "mg", , False
End Sub

Sub mg()
    ActiveSheet.Cells(ActiveSheet.Cells.Rows.Count, 1).End(xlUp).Offset(1) = "Running"
    Call RefreshData
End Sub

Отмена запланированной процедуры Можно отменить процедуру, запланированную для выполнения, но вам нужнознать точную дату и время, на которое было запланировано.Чтобы отменить запланированную процедуру, вы должны знать «Самый ранний срок», на который она была запланирована.Точно такой же синтаксис, за исключением того, что для параметра расписания установлено значение False.Это говорит приложению об отмене расписания.

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