2016-06-17 3 views
0

Я пытаюсь запустить макрос каждый день в 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 

ответ

1

Это может быть сделано, однако, вам нужно запустить на время в модуле «ThisWorkbook» в «Worbook_Open» рутинного:

Private Sub Workbook_Open() 
Application.OnTime TimeValue("15:33:00"), "Summary of Covered Companies" 
End Sub 

PS: Макрос не будет работать автономно , обратите внимание, что при открытии WB запускается команда, чтобы запланировать его, если он был указан только в самом макросе, Excel никогда не узнает, пока что-то его не активирует.

+0

Могу ли я создать ячейку со временем и когда она будет работать 9:00 каждый день, макрос будет работать? – Jeff

+0

Да, вы можете, просто убедитесь, что ячейка правильно отформатирована как час и попробуйте Application.OnTime TimeValue (Range («A1»). Текст), «Краткое описание закрытых компаний» Не забудьте, если этот ответ приведет вас к решение, отметьте зеленую метку :) – Sgdva

0

Вы можете запланировать окна, чтобы открыть файл с планировщиком задач. Затем запустите макрос в рабочей книге Open и закройте файл.

Еще одна идея, которую я использую в течение многих лет, - запланировать Gmail для отправки электронной почты на определенную учетную запись в определенное время каждый день с кодовым словом в теме. Затем я запускаю макрос Outlook, если к нему приходит электронное письмо с этим кодовым словом. Это дает мне возможность остановить макрос удаленно, остановив отправку электронной почты. Это работает безупречно.

Смежные вопросы