gpt4 book ai didi

excel - 手动保存文档时需要重置自动保存计时器

转载 作者:行者123 更新时间:2023-12-04 22:24:04 25 4
gpt4 key购买 nike

所以,我有一些代码自动保存我的 Excel 项目。我正在寻找一种在手动保存文档时停止/重置自动保存计时器的方法。这就是我用于自动保存的内容。

If ThisWorkbook.Name = "mydoc.xlsm" Then
Application.OnTime Now + TimeValue("00:30:00"), "Save_Workbook"
End If

我尝试了一个 if 语句:
If ActiveWorkbook.Saved = False Then
Application.OnTime Now + TimeValue("00:01:00"), "ShowMsg"
End If

要查看是否通过保存文档我会阻止 ShowMsg 关闭。但即使在保存文档后,ShowMsg 也会在 1 分钟时关闭。它不会改变计时器。

编辑:我使用的解决方案

我能够使用以下方法完成我想要的。

在工作簿中

我使用函数 Workbook_BeforeSave() 以在保存后停止计时器。
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, _
Cancel As Boolean)

Call StopTimer

End Sub

这是调用模块 StopTimer()。这是在模块级别定义的。
Option Explicit
Public RunWhen
Public cRunWhat

Public Sub StartTimer()
RunWhen = Now + TimeValue("00:01:00")
cRunWhat = "Save"
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, Schedule:=True
End Sub
Public Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, Schedule:=False
StartTimer
End Sub

现在,我在工作簿中有一个不同的函数调用 StartTimer,而 Save() 只是一个基本的保存工作簿函数。

我在另一篇文章中解决了我遇到的一个主要问题。 Linked here

我将把这个解决方案复制到那个帖子。

最佳答案

您可以使用 BeforeSave事件。

https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.beforesave

就像是:

在本工作簿中:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ 
Cancel as Boolean)
Call Timer
End Sub

在模块中:
Sub Timer()
Application.OnTime Now + TimeValue("00:00:03"), "Hello"
End Sub
Sub Hello()
MsgBox "Hello"
End Sub

关于excel - 手动保存文档时需要重置自动保存计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com