У меня возникла ситуация, когда нескольким пользователям нужно будет получить доступ к рабочей книге (вы должны избегать использования опции «Совместное использование книг» из-за всех проблем). Я решил, что возможное решение этого - заставить книгу автоматически закрыться после 15 минут бездействия.Autoclose Excel Workbook с предупреждающим всплывающим окном
Мне также хотелось бы, чтобы сообщение появилось после 15 минут, которое предупреждает пользователя о том, что, если они не нажмут кнопку «ОК», рабочая книга закроется. Если они нажмут на кнопку, я бы хотел, чтобы счетчик начал заново, и в идеале, если они не нажимают на что-либо, книга будет автоматически ближе через дальнейшие 1 минуту.
Я нашел код, который я использовал. Рабочая книга успешно закрывается через определенное время, но я не могу понять, как открыть окно сообщения. Поблагодарили бы за любую помощь, спасибо!
код я ниже:
В модуле 1:
Dim DownTime As Date
Sub SetTimer()
DownTime = Now + TimeValue("0:15:00")
Application.OnTime EarliestTime:=DownTime, _
Procedure = "ShutDown", Schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=False
End Sub
Sub ShutDown()
Application.DisplayAlerts = False
With ThisWorkbook
.Saved = True
.Close
End With
End Sub
И в ThisWorkbook:
Private Sub Workbook_Open()
Call SetTimer
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call StopTimer
Call SetTimer
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Call StopTimer
Call SetTimer
End Sub
MsgBox ("раз вверх?")? Это не будет? – dgorti
С другой стороны, если рабочая книга неактивна, отображение окна сообщения не поможет, потому что оно требует ввода пользователя, и пользователь, возможно, уже ушел. :-) – dgorti
@dgorti, тогда книга может быть закрыта, как и предполагалось. – Veve