Как заставить vba работать каждые 10 минут?


Мне нужно, чтобы мой макрос выполнялся каждые 10 минут .

Это позволяет ему работать в течение 10 минут

sub my_Procedure () 
msgbox "hello world"
end sub

sub test()
Application.OnTime Now + TimeValue("00:00:10"), "my_Procedure"
end sub
Но это срабатывает только один раз . Как заставить мой макрос выполняться каждые 10 минут ?
2 9

2 ответа:

Вы должны использовать этот шаблон:

Sub my_Procedure()
    MsgBox "hello world"        
    Call test ' for starting timer again
End Sub

Sub test()
    Application.OnTime Now + TimeValue("00:10:00"), "my_Procedure"
End Sub

Рассмотрим:

Public RunWhen As Double
Public Const cRunWhat = "my_Procedure"

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 10, 0)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
     schedule:=True
End Sub

Sub StopTimer()
   On Error Resume Next
   Application.OnTime earliesttime:=RunWhen, _
       procedure:=cRunWhat, schedule:=False
End Sub

Sub my_Procedure()
    MsgBox "hello world"
    Call StartTimer
End Sub

Все в стандарте module..............be обязательно запустите StopTimer перед выходом из Excel

Примечание

"минутный" аргумент в TimeSerial являетсявторым аргументом .