Tl:dr在Excel未打开时查看是否有任何方法可以启动Excel VBA宏。
长版:我有一个从特定网站集中提取数据的宏,并相应地更新电子表格。唯一的问题是数据在不方便的时间更新,即周一早上05.00(格林威治标准时间)和周四早上01.15(格林威治标准时间)。
我需要的是一种Excel自启动方式,收集数据,更新电子表格,然后关闭。这有可能吗?
答案 0 :(得分:2)
如果我是你,我会这样做:
首先,我安装了第三方程序,在需要时打开XLSM文件。
Excel打开电子表后,您可以创建一个Sub Workbook_Open()
例程来自动运行您的宏。您的宏可以在完成后关闭电子表格,然后退出Excel。
答案 1 :(得分:2)
更容易 - 不需要VB脚本。
运行WINDOWS TASK SCHEDULER,使用Excel作为应用程序设置作业。
您必须搜索Excel.exe - 由于我的版本,我在此处找到了它:
"C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"
接下来将参数作为宏嵌入Excel文件的FULL PATH提供。 对于我的测试,我在桌面上调用了一个文件:
C:\Users\br12260\Desktop\TimeSeries.xls
然后确保您的工作簿在Workbook_Open
模块中有一个ThisWorkbook
过程来触发您的代码:
答案 2 :(得分:1)
最佳方式是编写一个VB.net脚本来实现这一目标。
最简单的方法是让PC在夜间开启并按照this简单教程进行操作:
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调度程序,如this answer中所述。