每日计时器自动运行一个宏

时间:2016-06-17 19:52:42

标签: excel-vba ontime nsrunningapplication vba excel

我每天早上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 个答案:

答案 0 :(得分:1)

可以这样做,但是,您需要在“Worbook_Open”例程中的“ThisWorkbook”模块中运行准时:

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

PS:宏不会独立运行,请注意,当打开WB时,将运行命令来安排它,如果仅在宏本身中指定,则Excel将永远不会知道,直到激活它。 / p>

答案 1 :(得分:0)

您可以安排Windows使用任务计划程序打开文件。然后让宏在Workbook Open上运行并关闭文件。

我多年来一直使用的另一个想法是安排Gmail在每天的特定时间使用主题中的代码字向特定帐户发送电子邮件。然后,如果电子邮件带有该代码字,我就会运行Outlook。这使我能够通过停止发送电子邮件来远程停止宏。它运作完美。