Итак, у меня есть код для автоматического сохранения моего проекта 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 минуты. Это не меняет таймер.
Редактировать: Решение Я использовал
Я смог выполнить sh, что я хотел, используя следующие методы.
В Рабочей книге
Я использовал функцию 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 () была просто c функцией сохранения книги.
Основная проблема, с которой я столкнулся, была решена мной в другом посте. Ссылка здесь
Я буду копировать это решение в этот пост.