Закрытие рабочей книги, когда она неактивна с другими открытыми - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь сохранить и закрыть книгу, если она неактивна. Я видел в других сообщениях, что это не идеально, если кто-то находится в середине чего-то. Книги, в которых это будет реализовано, в основном предназначены для поиска или являются определенными книгами, к которым нескольким пользователям потребуется доступ.

Это код, полученный с другой веб-страницы. Однако его работа иногда открывается с ошибкой времени выполнения «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
...