Страницы: 1
RSS
Макрос закрытия файла если не используется 1 час
 
Всем привет!
Сделал витринные файлы руководителю, разместил их на сетевом ресурсе. Столкнулся с проблемой, что она не выходит из них и я не могу их обновить. Иногда она в них что то дорассчитывает/оставляет комментарии.
Возможно ли сделать следующий макрос, если файл не используется (не производят никаких действий в файле) 1 час, то сохранить копию файла и закрыть?  
 
Возможно. Один из вариантов.
Создать макрос обработки события. Например, на изменение ячеек.
В нём отменять предыдущую процедуру (о ней ниже).
И запускать следующую через час "OnTime Now+TimeSerial(1,0,0).
Сама процедура сохраняет и закрывает файл.
 
Это в модуль листа.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Static dtNext As Date
    
    'Отмена периодической работы
    On Error Resume Next
        Application.OnTime EarliestTime:=dtNext, Procedure:="MyClose", Schedule:=False
    On Error GoTo 0
        
    dtNext = Now + TimeSerial(1, 0, 0)
    Application.OnTime dtNext, "MyClose"
End Sub
Это в стандартный модуль.
Код
Sub MyClose()
    With ThisWorkbook
        .Close Not .ReadOnly
    End With
End Sub
Изменено: МатросНаЗебре - 31.12.2020 11:51:49
 
МатросНаЗебре, не силен в макросах, понял, что он работает после последнего внесения изменений на листе
Возможно ли сделать следующее, после последнего щелчка на листе по любой ячейки закрытие?
 
Если ему только смотреть, то нужно просто записать файл с опцией предлагать открыть для чтения.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх