Excel Application.OnTime不是';t自动运行
我正试图在一段时间后关闭工作簿 我现在用10秒来测试它,但它不会自动工作 我必须自己运行一次代码 这是我在模块中的代码Excel Application.OnTime不是';t自动运行,excel,vba,Excel,Vba,我正试图在一段时间后关闭工作簿 我现在用10秒来测试它,但它不会自动工作 我必须自己运行一次代码 这是我在模块中的代码 Public Sub fermeoutil() Workbooks("OUTIL_CRN.xlsm").Save Workbooks("OUTIL_CRN.xlsm").Close Call test End Sub Sub test() Application.OnTime Now + TimeValue("00:00:10"), "fermeoutil" End Su
Public Sub fermeoutil()
Workbooks("OUTIL_CRN.xlsm").Save
Workbooks("OUTIL_CRN.xlsm").Close
Call test
End Sub
Sub test()
Application.OnTime Now + TimeValue("00:00:10"), "fermeoutil"
End Sub
在
本工作簿中
添加程序工作簿\u打开时使用以下代码:
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:10"), "fermeoutil"
End Sub
在Module1
中保留当前过程fermeoutil()
删除对test
的调用:
Public Sub fermeoutil()
Workbooks("OUTIL_CRN.xlsm").Save
Workbooks("OUTIL_CRN.xlsm").Close
End Sub
您不需要调用
test
(或现在调用的工作簿_Open()),因为您省略了Application.OnTime
的最后一个参数,即Schedule
,它是可选的,默认值为True
,表示事件将重复发生。不确定这是否真的是您的意思,因为您正在关闭wb。我必须自己运行一次代码。是的,您的代码测试必须运行一次,计时事件才能首先存在。不需要在fermeoutil
中调用test
。请看@TomBrunberg有没有办法自动运行?什么都不用做?感谢您要在工作簿打开时自动运行,请在此工作簿
中写入代码,在事件私有子工作簿_Open()
中,如果子工作簿的名称
工作簿_Open,如何命名Application.OnTime
的过程@汤姆布伦伯格和你现在一样好吗?我不知道我是否理解你为什么问。它仍然不起作用。。。你说的都做了!好吧,对我来说很有效,我从一个工作测试中复制了代码,很有效。我只需要运行一次宏。现在它可以自动工作,而无需运行它。谢谢。