Как использовать Application.OnTime для ежедневного вызова макроса в определенное время без необходимости закрывать книгу
Я написал макрос, который использует Application.OnTime, который работает, если я выполняю макрос вручную. Я пытаюсь автоматизировать этот процесс, поэтому мне не нужно писать Application.OnTime в "This Workbook" или (Private Sub Workbook_Open(). Большинство из вас делают это, потому что у вас может быть планировщик Windows, открывающий книгу в определенное время, которое запускает макросы при открытии. Я НЕ МОГУ ИСПОЛЬЗОВАТЬ РАСПИСАНИЕ.
Поскольку я не могу использовать планировщик Windows, я буду держать книгу открытой, а таймер должен обновить мои данные, а затем каждый раз вызывать "мой макрос" в определенное время.
Где разместить этот код и как установить автоматический таймер?
1 ответ
Вы можете создать своего рода процедуру повторения. Это может выглядеть следующим образом:
Sub Call_At_3_30()
'first call appropriate procedure
Call myProcedure
'next, set new calling time
Application.OnTime TimeValue("3:30:00"), "Call_At_3_30"
End Sub
Где-то вы сохраните свою основную процедуру, в этой ситуации:
Sub myProcedure
'your code here
End Sub
В этой ситуации вам нужно запустить первую подпрограмму Call_At_3_30
только однажды. Но вы должны помнить, что Excel должен быть включен все время.
При желании, если вы хотите вызвать процедуру через 24 часа, вы можете изменить .OnTime
инструкция таким образом:
Application.OnTime Now + 1, "Call_At_3_30"
Возможны и другие модификации.