Excelclosures时启动macros

Tl:dr在Excel未打开时查看是否有任何方法启动Excel VBAmacros。

长版本:我有一个macros从一组特定的网站获取数据,并相应地更新电子表格。 唯一的问题是,数据在不方便的时候更新,即星期一上午05.00(GMT)和星期四上午01.15(GMT)。

我需要的是一种Excel自启动方式,收集数据,更新电子表格,然后closures。 这可能吗?

更容易 – 不需要VB脚本。

运行WINDOWS TASK SCHEDULER,使用Excel作为应用程序设置一个作业。

在这里输入图像说明

你将不得不searchExcel.exe – 因为我的版本,我在这里find它:

"C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"

接下来将参数作为完整path提供给macrosembedded的Excel文件。 对于我的testing,我在桌面上调用了一个文件:

C:\Users\br12260\Desktop\TimeSeries.xls

然后确保工作Workbook_OpenThisWorkbook模块中有一个Workbook_Open过程来触发你的代码:

在这里输入图像说明

如果我是你,我会这样:

首先,我安装第三方程序,在需要时打开XLSM文件。

一旦Excel打开了电子表格,您可以创build一个Sub Workbook_Open()例程来自动运行您的macros。 完成后,您的macros可以closures电子表格,然后退出Excel。

最好的方法是编写一个VB.net脚本来做到这一点。

最简单的方法是在夜间打开电脑,并遵循这个简单的教程:

 Public dTime As Date Dim lNum As Long Sub RunOnTime() dTime = Now + TimeSerial(0, 0, 10) Application.OnTime dTime, "RunOnTime" lNum = lNum + 1 If lNum = 3 Then Run "CancelOnTime" Else MsgBox lNum End If End Sub Sub CancelOnTime() Application.OnTime dTime, "RunOnTime", , False End Sub 

另一种方法是使用Windows调度程序,就像写在这个答案中一样 。