Я использую команду Application.Ontime для автоматического закрытия электронной таблицы после периода бездействия (10 минут).
Следующий код, по-видимому, работает в целом, однако, похоже, что если вы вручную закроете лист самостоятельно, книга все равно будет работать в фоновом режиме и в последний назначенный «конечный момент времени» откроется сама по себе, чтобы она могла закрой себя.
Это также очевидно в окне кода VBA, поскольку после запуска макроса CloseWB и того, что книга Excel выглядит закрытой, она все еще отображается в окне проводника проекта VBA.
Sub RunTime()
Static EndTime
If Not EndTime = "" Then ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , False
EndTime = Now + TimeValue("00:10:00")
ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , True
End Sub
Sub CloseWB()
Application.DisplayAlerts = False
With ThisWorkbook
.Save
.Close
End With
End Sub
Я не хочу полностью выключать Excel (application.quit), если у пользователей открыты другие книги, но нужно попытаться остановить конкретную книгу, работающую в фоновом режиме.
Есть идеи?