延迟Excel保存功能

时间:2014-03-07 10:14:24

标签: excel vba timer

我有一个工作簿,需要在开始时保存,然后每隔5分钟自动保存,但我需要延迟初始保存,以便在工作簿打开时等待30秒然后执行保存。

这是我的代码,但它会自动运行:

Private Sub Workbook_Open()
Time = Now() + TimeValue("00:00:30")
Application.OnTime Time, "WaitUntilReady"

Public Sub WaitUntilReady()

savefolder = "C:\Users\" & Environ$("Username") & "\Desktop\"

mypath = savefolder & Format(Date, "dd-mmm-yy")

If Len(Dir(mypath, vbDirectory)) = 0 Then MkDir mypath

On Error Resume Next

ThisWorkbook.SaveAs mypath & "\" & "Practice Monitoring Template" & " - " & Format(Time, "hh.nn") & ".xlsm"

Application.EnableEvents = True
End Sub

2 个答案:

答案 0 :(得分:2)

Time是Excel中的保留字(它返回当前时间),请改用此字段:

Private Sub Workbook_Open()
    Application.OnTime Now() + TimeValue("00:00:30"), "WaitUntilReady"
End Sub

答案 1 :(得分:1)

Time是一个ingegrated函数。如果您不将其声明为变量,则行Time = ...应该抛出错误。如果你已声明它,它实际应该运行正常(不是立即) - 它在我的测试中。 (当然你应该改变变量名。)