Страницы: 1
RSS
Выполнение макроса если прошло какое-то время
 
Можно еще?
Хочу сделать чтобы  человек нажимал кнопку,выполнялся какой-то макрос,в переменую сохранялось тек.время с датой
Код
tekushee_vremya = Now()

затем при запуске второго макроса проверялось,прошло ли 30 секунд . если прошло то выполнится,нет то что-то другое произойет.
Код
Sub proverka_plusov()
    tekushee_vremya = Now()
    vremya_c_30_sek = tekushee_vremya + Second(30)
  If Now() < tekushee_vremya Then
  'Что-то выполняется
  MsgBox "если истина"
  Else
  ' Что-то не выплняется
  MsgBox "если не истин"
  End If
End Sub

Но всегда показывает что не прошло
Изменено: vas_75353 - 24.07.2019 22:50:15
 
Ну и правильно. Вы каждый раз переприсваиваете переменной значение:
Код
tekushee_vremya = Now()
   vremya_c_30_sek = tekushee_vremya + Second(30)

и тут же проверяете, причем не время с добавленной задержкой, а то что было только что присвоено.
Код
 If Now() < tekushee_vremya Then

Давайте уберем вот это из макроса:
Код
tekushee_vremya = Now()

tekushee_vremya объявим типа статик или глобальной, а уже дальше:
Код
 vremya_c_30_sek = tekushee_vremya + 30/86400(тут у Вас тоже была ошибка)
 If Now() < vremya_c_30_sek Then
...

Итак, что получили?
Код
Sub proverka_plusov()
    vremya_c_30_sek = tekushee_vremya + 30 / 86400
    If Now() < vremya_c_30_sek Then
      'Что-то выполняется
 MsgBox "если истина"
 Else
 ' Что-то не выплняется
 MsgBox "если не истин"
 End If
Я сам - дурнее всякого примера! ...
 
vas_75353, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
 
Спасибо, опишусь еще.
Страницы: 1
Наверх