Excel关闭时启动宏

时间:2017-04-03 13:32:21

标签: excel excel-vba vba

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

长版:我有一个从特定网站集中提取数据的宏,并相应地更新电子表格。唯一的问题是数据在不方便的时间更新,即周一早上05.00(格林威治标准时间)和周四早上01.15(格林威治标准时间)。

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

3 个答案:

答案 0 :(得分:2)

如果我是你,我会这样做:

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

Excel打开电子表后,您可以创建一个Sub Workbook_Open()例程来自动运行您的宏。您的宏可以在完成后关闭电子表格,然后退出Excel。

答案 1 :(得分:2)

更容易 - 不需要VB脚本。

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

enter image description here

您必须搜索Excel.exe - 由于我的版本,我在此处找到了它:

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

接下来将参数作为宏嵌入Excel文件的FULL PATH提供。 对于我的测试,我在桌面上调用了一个文件:

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

然后确保您的工作簿在Workbook_Open模块中有一个ThisWorkbook过程来触发您的代码:

enter image description here

答案 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中所述。