Страницы: 1
RSS
Остановить счетчик времени и макросы при выходе из Excel
 
Всем привет!
Создан макрос, который запускается при открытии книги.
Суть его в том, что запускается счетчик времени, и если пользователь сидит в файле и ничего не делает более 59 минут,  то файл сохраняется и закрывается.
Но есть проблема: даже если я закрываю книгу, она через 59 минут сама открывается, сохраняется файл и закрывается. Если я правильно понял, это происходит, когда при открытии книги параллельно была открыта другая книга excel. Видимо из-за того, что макрос при закрытии книги не останавливается.

В общем нужно, чтобы когда я выходил из книги все эти макросы останавливались, в т.ч. таймер времени.

Спасибо!


Книга:
Код
Option Explicit
Private Sub Workbook_Open()
  End Time = Now + TimeValue("00:59:00")
  RunTime
End Sub
Модуль:
Код
Option Explicit
Public EndTime

Sub RunTime()
 Application.OnTime _
  EarliestTime:=EndTime, _
  Procedure:="CloseWB", _
End Sub

Sub CloseWB()
 Application.DisplayAlerts = False
 With ThisWorkbook
  .Save
  .Close
 End With
End Sub
 
Можно как-то "грамотно" сделать, но я могу только предложить:
добавить Public bEnabled as boolean задавать bEnabled = true в RunTime и использовать bEnabled  как условие в CloseWB.

Для отключения макроса при закрытии книги добавить:
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     bEnabled  = false
End Sub
Или в CloseWB передавать книгу как параметр...
Код
Sub CloseWB(wbX as Workbook)
 Application.DisplayAlerts = False
 on error resume next
 With wbX
  .Save
  .Close
 End With
End Sub
Без файла-примера ничего лучше подсказать не могу.
Я не волшебник, я только учусь.
 
Wiss, спасибо) помогло.
Страницы: 1
Наверх