2016-06-17 21 views
0

Ich versuche, ein Makro jeden Tag um 9 Uhr morgens auszuführen. Ich versuche, die OnTime-Anwendung zu verwenden und habe getestet, dass das Makro zu einem bestimmten Zeitpunkt gestartet wird, aber es funktioniert nicht automatisch. Ich muss das Makro manuell ausführen, um das Popup-Fenster zu öffnen. Irgendein Rat?Tägliche Timer zum automatischen Ausführen eines Makros

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 

Antwort

1

Dies ist jedoch getan werden kann, müssen Sie die auf Zeit im Modul "Diesearbeitsmappe" in der "Worbook_Open" Routine auszuführen:

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

PS: Ein Makro läuft nicht standalone Beachten Sie, dass wenn der WB geöffnet wird, der Befehl ausgeführt wird, um ihn zu planen, wenn er nur im Makro selbst angegeben wurde, wird Excel nie wissen, bis etwas aktiviert wird.

+0

Kann ich eine Zelle mit der Zeit erstellen und wenn es jeden Tag 9:00 Uhr auftrifft, wird das Makro ausgeführt? – Jeff

+0

Ja, Sie können nur sicherstellen, dass die Zelle richtig formatiert ist als Stunden und versuchen Sie Application.OnTime TimeValue (Bereich ("A1"). Text), "Zusammenfassung der Covered Companies" Vergessen Sie nicht, wenn diese Antwort Sie dazu führen die Lösung, überprüfe die grüne Markierung :) – Sgdva

0

Sie können Windows planen, um die Datei mit Taskplaner zu öffnen. Lassen Sie dann das Makro auf Workbook Open laufen und schließen Sie die Datei.

Eine weitere Idee, die ich seit Jahren verwende, ist, Google Mail so zu planen, dass zu einem bestimmten Zeitpunkt jeden Tag eine E-Mail mit einem Codewort im Betreff an ein bestimmtes Konto gesendet wird. Ich habe dann Outlook ein Makro ausführen, wenn eine E-Mail mit diesem Codewort kommt. Dies gibt mir die Möglichkeit, das Makro per Fernzugriff zu stoppen, indem die E-Mail daran gehindert wird, gesendet zu werden. Es hat einwandfrei funktioniert.

Verwandte Themen