Ich würde eine VBScript-Datei empfehlen und dafür sorgen, dass sie täglich mit dem Task-Scheduler ausgeführt wird. Ich bevorzuge das, denn dann kann ich die Excel-Datei zu jeder Tageszeit öffnen und das Makro wird nicht ausgeführt (falls Sie nur wollen, dass es nur zu dieser bestimmten Zeit aktualisiert wird).
Dies ist das VBScript, das Sie in Notepad schreiben müssen und dann mit der Erweiterung *.vbs
speichern.
Option Explicit
'On Error Resume Next 'Comment-out for debugging
ExcelMacro
Sub ExcelMacro()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set xlBook =
xlApp.Workbooks.Open("path\to\the\file.xlsm", 0, True)
xlApp.Run "Update" 'Name of your Sub
xlBook.Save
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Dann können Sie den Event-Scheduler von der Befehlszeile festgelegt, wie dies von here:
schtasks /Create [/S <system> [/U <username> [/P [<password>]]]]
[/RU <username> [/RP <password>]] /SC <schedule> [/MO <modifier>] [/D <day>]
[/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>]
[/RI <interval>] [ {/ET <endtime> | /DU <duration>} [/K] [/XML <xmlfile>] [/V1]]
[/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]
Andere Links können Sie nützlich:
Task Scheduler from the command line? von Super-User-
What is a simple way to schedule a single event to happen at some time in the future? von Linux & Unix
How to Schedule Programs to Run Automatically in Windows 7? von Gizmos Freeware (TechSupportAlert)
Entweder Windows-Taskplaner oder andere Scheduler ist die einzige Option, die Sie haben. Die Excel-Datei ist nur ein Dokument. Wenn Sie nicht ein Makro von außen auslösen, um eine E-Mail zu senden, ist es nicht möglich, ein Makro innerhalb der Excel-Datei automatisch täglich auszuführen. Das Senden einer Mail nur einmal am Tag kann in das Makro eingefügt werden. Allerdings muss dieses Makro täglich nur vom externen Dienstprogramm ausgelöst werden. – Karpak
Wenn Sie bereit waren, die Excel-Datei dauerhaft offen zu lassen, könnten Sie Ihrem Makro ein 'OnTime'-Ereignis hinzufügen, aber das ist normalerweise nicht praktikabel, daher ist der Aufgabenplaner wahrscheinlich der beste Weg. – YowE3K
@Karpak Was ist mit dem Ausführen eines VbScript (oder Batch-Datei), die dieses Makro ausführt? – Masoud