Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 07:18   #1
Quik
Новичок
Джуниор
 
Регистрация: 29.04.2009
Сообщений: 2
По умолчанию проверка по времени

Добрый день
подскажите плиз как можно проверять значение через определенный промежуток времени?

например через 1 минуту
If [a1] > 50 Then МойМакрос
Quik вне форума Ответить с цитированием
Старый 29.04.2009, 08:08   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Есть несколько вариантов. Можно использовать метод OnTime. А можно, например, так:
Код:
Sub TimeSet()
    Start = Timer
M1: Do While Timer < Start + 60: DoEvents: Loop
    Start = Timer: If [A1] > 50 Then myMacro: GoTo M1
End Sub

Sub myMacro(): MsgBox "A1 > 50": End Sub
Запустите макрос TimeSet". Это не что иное, как пауза в 60 секунд, по истечении которых будет проверено условие и, если нужно, запущен макрос "myMacro".
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 29.04.2009 в 08:12.
SAS888 вне форума Ответить с цитированием
Старый 29.04.2009, 09:07   #3
Quik
Новичок
Джуниор
 
Регистрация: 29.04.2009
Сообщений: 2
По умолчанию

хнык( не получается(
значение в ячейку импортируется и обновляется без нажатия интер
наверно получается что при проверке условия значение не обновляется(
Quik вне форума Ответить с цитированием
Старый 29.04.2009, 09:23   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Попробуйте ввести формулу, например, в ячейке "B1" напишите "=A1". Соответственно, в макросе измените адрес проверяемой ячейки на "B1".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 29.04.2009, 10:54   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

выполните этот макрос как-то 1 раз, потом он будет срабатывать каждую минуту, пока книга открыта.
Код:
Sub РазВМинуту
  If [a1] > 50 Then МойМакрос
  Application.OnTime Now + TimeSerial(0,1,0), "РазВМинуту"
end sub
может так предполагалось?
Код:
Sub TimeSet()
    Start = Timer
M1: Do While Timer < Start + 60: DoEvents: Loop
    Start = Timer: If [A1] > 50 Then myMacro
    GoTo M1
End Sub
в исходном варианте при превой проверке, когда А1 <= 50, следующей строкой выполнялась End Sub и все на этом заканчивалось.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ограничение по времени bunner Помощь студентам 4 05.02.2009 21:31
задержка времени Crasty Помощь студентам 6 26.01.2009 18:55
Проверка нажатия конкретной клавиши (или нескольких клавиш) в реальном времени ROD Общие вопросы C/C++ 2 15.01.2009 13:11
Отсчет времени в С Raptor Помощь студентам 13 29.12.2007 16:32