仅当打开工作表时,带有Application.OnTime的宏才起作用

时间:2018-07-24 18:12:34

标签: excel vba

我有一个工作表,它需要一个宏,每天上午10点运行。该代码仅在我打开特定工作表时有效,而在打开另一个工作表时无效。有人可以帮我吗?

模块中的代码:

Sub SendC()

  Application.OnTime TimeValue("10:00:00"), "SendC"

  **Rest of my code **

End Sub

ThisWorkbook中的代码:

Private Sub Workbook_Open()

    Application.OnTime TimeValue("10:00:00"), "SendC"

End Sub

1 个答案:

答案 0 :(得分:0)

VBA代码始终嵌入在宿主文档中-在Excel中,是启用宏的Workbook文件。

通过关闭包含代码的工作簿,您可以终止该工作簿中正在运行的任何VBA代码。

您可以通过制作Excel外接程序使VBA代码在应用程序级别运行:该代码仍生活在宿主文档中,但是该宿主文档与Excel一起加载,并且只要该Excel一直加载实例正在运行。

将VBA项目另存为Excel加载项,然后关闭所有内容,再次打开Excel并加载加载项:Workbook_Open将在加载加载项时运行一次,然后{{{只要您保持Excel运行,就会在上午10点调用1}}宏。