Ежедневный таймер для автоматического запуска макроса

Я пытаюсь запустить макрос каждый день в 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, если письмо приходит с этим кодовым словом. Это дает мне возможность удаленно останавливать макрос, предотвращая отправку электронной почты. Работает без нареканий.

Другие вопросы по тегам