如何使用Windows任务调度程序每天运行一个macros

我有一个macros,我想在每天的特定时间(即上午11点)运行,即使Excel已closures。

我发现的是我可以通过创buildWindows任务计划程序,但我是新来的Windows,不知道如何创build。

以下是我的macros:

Sub Mail_Sheet_Outlook_Body() Dim rng As Range Dim OutApp As Object Dim OutMail As Object With Application .EnableEvents = False .ScreenUpdating = False End With Set rng = Nothing Set rng = ActiveSheet.UsedRange 'You can also use a sheet name 'Set rng = Sheets("YourSheet").UsedRange Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = "" .CC = "" .BCC = "" .Subject = "Testing" .HTMLBody = RangetoHTML(rng) .Send 'or use .Display End With On Error GoTo 0 With Application .EnableEvents = True .ScreenUpdating = True End With Set OutMail = Nothing Set OutApp = Nothing End Sub Function RangetoHTML(rng As Range) Dim fso As Object Dim ts As Object Dim TempFile As String Dim TempWB As Workbook TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm" 'Copy the range and create a new workbook to past the data in rng.Copy Set TempWB = Workbooks.Add(1) With TempWB.Sheets(1) .Cells(1).PasteSpecial Paste:=8 .Cells(1).PasteSpecial xlPasteValues, , False, False .Cells(1).PasteSpecial xlPasteFormats, , False, False .Cells(1).Select Application.CutCopyMode = False On Error Resume Next .DrawingObjects.Visible = True .DrawingObjects.Delete On Error GoTo 0 End With 'Publish the sheet to a htm file With TempWB.PublishObjects.Add( _ SourceType:=xlSourceRange, _ Filename:=TempFile, _ Sheet:=TempWB.Sheets(1).Name, _ Source:=TempWB.Sheets(1).UsedRange.Address, _ HtmlType:=xlHtmlStatic) .Publish (True) End With 'Read all data from the htm file into RangetoHTML Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2) RangetoHTML = ts.readall ts.Close RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _ "align=left x:publishsource=") 'Close TempWB TempWB.Close savechanges:=False 'Delete the htm file we used in this function Kill TempFile Set ts = Nothing Set fso = Nothing Set TempWB = Nothing End Function 

任何人都可以告诉我如何创buildWindows任务调度程序每天运行这个macros?

更新:

写下面的vbs脚本:

 Dim xlApp, xlBook Set xlApp = CreateObject("Excel.Application") xlApp.DisplayAlerts = False Set xlBook = xlApp.Workbooks.Open(“H:\excel.xlsm”, 0, True) xlApp.Run "GetFiles" xlbook.Save xlBook.Close False set xlBook = Nothing xlApp.Quit Set xlApp = Nothing WScript.Echo "Finished." WScript.Quit 

  1. 创build一个文件并将扩展名更改为.vbs。 你会写一个小脚本来开始打开你的xlsm文件。
  2. 把你的开始函数放在Private Sub Workbook_Open()中,这样你的函数将在文件打开的时候运行
  3. 按照这里的说明使Windows任务计划程序closures您的vbs

尝试这个,,

Application.OnTime TimeValue(“18:00:00”),“MyMacro”

其他如果你想在不支持Excel的情况下运行macros,你需要创buildVbs文件。 这就像A.Vbs,然后打开文件,粘贴您的示例macros,并且需要添加以下行,

objExcel.Application.Run“'path到excel文件'!模块名称。macros名称”

如果你想保存它,也可以添加这个,objExcel.Application.save objExcel.Application.Quit然后closures并双击Vbs文件。