Как запустить макрос VBA Excel в указанное время c, а затем каждые 2 часа - PullRequest
0 голосов
/ 21 января 2020

Мне бы хотелось, чтобы макрос VBA Excel запускался каждое утро в 8:30 утра, а затем каждые 2 часа с последним - в 4:30 вечера (10:30, 12:30, 14:30, 16:30).

Пока у меня есть следующие два сценария, но я не могу понять, как его запустить @ 8:30 AM:

Private Sub Workbook_Open()        
    Call SetTimeToRun    
End Sub

Private Sub SetTimeToRun()    
    Application.OnTime Now() + TimeValue("02:00:00"), "LiveBook"    
End Sub

1 Ответ

0 голосов
/ 21 января 2020

Если вы хотите запустить это заданное количество c, например, 3 раза, просто выполните:

Application.OnTime Now() + TimeValue("02:00:00"), "LiveBook" 
Application.OnTime Now() + TimeValue("04:00:00"), "LiveBook" 
Application.OnTime Now() + TimeValue("06:00:00"), "LiveBook" 

Если вы хотите запускать его непрерывно каждые 2 часа без ограничений, тогда вам нужно добавить

Call SetTimeToRun

к вашей процедуре LiveBook. Например,

Public Sub LiveBook()
    Call SetTimeToRun

    'your code here …
End Sub

Таким образом, каждый раз, когда LiveBook запускается, он запускает следующий запуск через 2 часа.

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


Если вам нужно запустить макрос с указанным c раз, например, с 8:30 до 10:30. Я рекомендую использовать планировщик windows для запуска сценария VB или чего-либо, что открывает рабочую книгу, запускает макрос и закрывает рабочую книгу. Но обратите внимание, что никто другой не может использовать рабочую книгу, иначе планировщик не сможет открыть рабочую книгу (только один человек может открыть рабочую книгу одновременно для редактирования).

Также см. Как настроить повторяющееся расписание для файла xlsm, используя Windows Task Scheduler .

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