Ежедневный таймер для автоматического запуска макроса
Я пытаюсь запустить макрос каждый день в 9 утра. Я пытаюсь использовать приложение OnTime и протестировал макрос для запуска в определенное время, но он не работает автоматически. Я должен вручную запустить макрос, чтобы всплывающее окно с сообщением. Любой совет?
Sub FinancialAlert()
Application.OnTime TimeValue("15:33:00"), "Summary of Covered Companies"
Dim i As Long
i = 5
While Workbooks("Montreal Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 5) <> ""
With Workbooks("Montreal Issuers.xlsm")
If .Sheets("Summary of Covered Companies").Cells(i, 5).Value = 1 Then
MsgBox Workbooks("Montreal Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 3).Value & " is issuing their next financial statement tomorrow (" & _
Format(Workbooks("Montreal Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 4).Value, "[$-409]mmmm d, yyyy;@") & ")."
End If
If .Sheets("Summary of Covered Companies").Cells(i, 5).Value = 0 Then
MsgBox Workbooks("Montreal Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 3).Value & " is issuing their next financial statement today (" & _
Format(Workbooks("Montreal Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 4).Value, "[$-409]mmmm d, yyyy;@") & ")."
End If
End With
i = i + 1
Wend
End Sub
2 ответа
Это можно сделать, однако вам нужно запустить вовремя в модуле "ThisWorkbook" в подпрограмме "Worbook_Open":
Private Sub Workbook_Open()
Application.OnTime TimeValue("15:33:00"), "Summary of Covered Companies"
End Sub
PS: макрос не будет работать автономно, обратите внимание, что при открытии WB будет запускаться команда для его планирования, если она была указана только в самом макросе, Excel никогда не узнает, пока что-то не активирует его.
Вы можете запланировать окна, чтобы открыть файл с помощью планировщика задач. Затем запустите макрос в Workbook Open и закройте файл.
Еще одна идея, которой я пользуюсь годами, - это запланировать Gmail для отправки электронной почты на конкретную учетную запись в определенное время каждый день с кодовым словом в теме. Затем я запускаю макрос в Outlook, если письмо приходит с этим кодовым словом. Это дает мне возможность удаленно останавливать макрос, предотвращая отправку электронной почты. Работает без нареканий.