Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как прервать Application.OnTime
 
Добрый день

Прошу помощи  у знатоков, можно ли осуществить такую задумку:

 Есть файл по событию открытия которого запускается нехитрый макрос, последняя строка в котором
                 Application.OnTime FF, "offf"
 т.е. файл должен закрыться через 1 мин после открытия .

ВОПРОС: можно ли как-то остановить закрытие если на "Лист1" в ячейку "А1" будут введены любые данные с клавиатуры?

Заранее всем благодарен.
 
Код
Sub offf ()
If  [A1] <> "" Then Exit Sub
ThisWorkbook.Close
End Sub
Изменено: Dima S - 18 Мар 2015 16:00:23
 
по событию изменения ячейки запускаете макрос, отменяющий Ontime:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> Me.Range("A1").Address Then Exit Sub
    Application.OnTime FF, "offf", , False ' отмена закрытия файла
End Sub
код вставляете в модуль листа Лист1
 
Это ведь всё есть в хелпе.
Код
Example
This example runs my_Procedure 15 seconds from now.

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
      
This example runs my_Procedure at 5 P.M.

Application.OnTime TimeValue("17:00:00"), "my_Procedure"
      
This example cancels the OnTime setting from the previous example.

Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
    Procedure:="my_Procedure", Schedule:=False


Изменено: Hugo - 18 Мар 2015 16:04:41
 
Спасибо, сейчас попробую.
Цитата
Это ведь всё есть в хелпе.
А насчет этого - или недочитал, или недопонял, спасибо за разъяснение.
 
Игорь, попробовал вставить в Private Sub Worksheet_Change(ByVal Target As Range) строку
Код
 Application.OnTime FF, "offf", , False ' отмена закрытия файла
ругается   Error `1004`
              Method `OnTime` of object`_Application` failed

Подскажите, пожалуйста, что не так?

фух..сам разобрался:
       надо было описать переменную FF на уровне модуля )))
Изменено: Artmasterpro - 18 Мар 2015 17:22:32
Страницы: 1
Читают тему (гостей: 1)