Я пытаюсь сохранить и закрыть книгу, если она неактивна. Я видел в других сообщениях, что это не идеально, если кто-то находится в середине чего-то. Книги, в которых это будет реализовано, в основном предназначены для поиска или являются определенными книгами, к которым нескольким пользователям потребуется доступ.
Это код, полученный с другой веб-страницы. Однако его работа иногда открывается с ошибкой времени выполнения «91» в «WKB = ActiveWorkbook.Name» в Module1 . Я не могу этого сделать из-за понимания некоторых пользователей компьютера.
Мне нужна эта часть кода, так как может быть открыто несколько рабочих книг, но мы просто хотим, чтобы неактивная рабочая книга была закрыта.
Код следующий:
ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call TimeStop
End Sub
Private Sub Workbook_Open()
Call TimeSetting
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call TimeStop
Call TimeSetting
End Sub
Module1
Dim CloseTime As Date
Dim WKB As String
Sub TimeSetting()
WKB = ActiveWorkbook.Name
CloseTime = Now + TimeValue("00:15:00")
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
Workbooks(WKB).Close Savechanges:=True
End Sub