关闭Excel时启动宏

关闭Excel时启动宏,excel,vba,Excel,Vba,Tl:dr正在查看是否有任何方法可以在Excel未打开时启动Excel VBA宏 长版本:我有一个宏,可以从一组特定的网站获取数据,并相应地更新电子表格。唯一的问题是数据在不方便的时间更新,即周一早上05:00(格林尼治标准时间),周四早上01:15(格林尼治标准时间) 我需要的是一种Excel自启动、收集数据、更新电子表格,然后关闭的方法。这是可能的吗?如果我是你,我会这样做: 首先,我安装了一个第三方程序,在需要时打开XLSM文件 Excel打开电子表格后,您可以创建一个子工作簿\u Ope

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

长版本:我有一个宏,可以从一组特定的网站获取数据,并相应地更新电子表格。唯一的问题是数据在不方便的时间更新,即周一早上05:00(格林尼治标准时间),周四早上01:15(格林尼治标准时间)


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

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

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


Excel打开电子表格后,您可以创建一个
子工作簿\u Open()
例程来自动运行宏。您的宏可以在电子表格完成后关闭,并退出Excel。

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

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


Excel打开电子表格后,您可以创建一个
子工作簿\u Open()
例程来自动运行宏。宏可以在完成后关闭电子表格并退出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调度程序,如中所述。

最好的方法是编写一个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调度程序,如中所述。

更简单-不需要VB脚本

运行WINDOWS任务计划程序,使用Excel作为应用程序设置作业

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

“C:\ProgramFiles(x86)\Microsoft Office\Office15\EXCEL.EXE”

接下来,提供参数作为嵌入宏的Excel文件的完整路径。 在测试中,我调用了桌面上的一个文件:

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

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


更简单-不需要VB脚本

运行WINDOWS任务计划程序,使用Excel作为应用程序设置作业

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

“C:\ProgramFiles(x86)\Microsoft Office\Office15\EXCEL.EXE”

接下来,提供参数作为嵌入宏的Excel文件的完整路径。 在测试中,我调用了桌面上的一个文件:

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

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


创建VbScript文件并编写代码以运行excel宏,并将其计划在所需时间运行。这应该会有所帮助。是,请使用Windows任务计划程序调用该进程。这应该是一个相当简单的过程,只需包括启动程序、应用程序名、EXCEL和文件名(包括路径)。确保XLS在此工作簿中有工作簿\打开子例程。如果你愿意的话,我可以在正式的答复中详细说明这一点。请让我知道。创建一个VbScript文件并编写代码以运行excel宏,并将其计划在所需时间运行。这应该会有所帮助。是的,请使用Windows任务计划程序调用该进程。这应该是一个相当简单的过程,只需包括启动程序、应用程序名、EXCEL和文件名(包括路径)。确保XLS在此工作簿中有工作簿\打开子例程。如果你愿意的话,我可以在正式的答复中详细说明这一点。请让我知道。