Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Циклический вызов процедуры при помощи таймера - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Циклический вызов процедуры при помощи таймера (Макросы/Sub)
Циклический вызов процедуры при помощи таймера
mrdc Дата: Вторник, 21.10.2014, 11:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Всем привет!

Возникла необходимость запуска процедуры на VBA в Excel через равные промежутки времени. Был найден вот такой пример:


Запускается вот так:
[vba]
Код
Sub ButtonStartClick()
StartTimer 1200, "НАША ПРОЦЕДУРА()" 'интервал в секундах
MsgBox ("Внимание! Таймер запущен")
End Sub
[/vba]

Но, к сожалению, работает пока некорректно: срабатывает не через равные промежутки и время срабатывания намного меньше заданного интервала.
Где искать ошибку?


Сообщение отредактировал mrdc - Вторник, 21.10.2014, 12:00
 
Ответить
СообщениеВсем привет!

Возникла необходимость запуска процедуры на VBA в Excel через равные промежутки времени. Был найден вот такой пример:


Запускается вот так:
[vba]
Код
Sub ButtonStartClick()
StartTimer 1200, "НАША ПРОЦЕДУРА()" 'интервал в секундах
MsgBox ("Внимание! Таймер запущен")
End Sub
[/vba]

Но, к сожалению, работает пока некорректно: срабатывает не через равные промежутки и время срабатывания намного меньше заданного интервала.
Где искать ошибку?

Автор - mrdc
Дата добавления - 21.10.2014 в 11:59
SkyPro Дата: Вторник, 21.10.2014, 13:08 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Здесь не нашли?


skypro1111@gmail.com
 
Ответить
СообщениеЗдесь не нашли?

Автор - SkyPro
Дата добавления - 21.10.2014 в 13:08
mrdc Дата: Вторник, 21.10.2014, 13:54 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Здесь не нашли?

Поиском пользовался :) У меня задача в циклическом запуске процедуры с определенным интервалом, а не просто срабатывании 1 раз и все.
 
Ответить
Сообщение
Здесь не нашли?

Поиском пользовался :) У меня задача в циклическом запуске процедуры с определенным интервалом, а не просто срабатывании 1 раз и все.

Автор - mrdc
Дата добавления - 21.10.2014 в 13:54
Savra Дата: Вторник, 21.10.2014, 15:09 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2002
Пример таймера
[vba]
Код
Sub Procedura_2()
             Application.OnTime Time + TimeSerial(0, 0, 5), "Proc"
         End Sub

         Sub Proc()
             MsgBox "Время вышло!", vbInformation, "Пример таймера"
         Procedura_2
         End Sub
[/vba]
взято отсюда
http://vbabesaba.com/uroki/ontime.htm
 
Ответить
СообщениеПример таймера
[vba]
Код
Sub Procedura_2()
             Application.OnTime Time + TimeSerial(0, 0, 5), "Proc"
         End Sub

         Sub Proc()
             MsgBox "Время вышло!", vbInformation, "Пример таймера"
         Procedura_2
         End Sub
[/vba]
взято отсюда
http://vbabesaba.com/uroki/ontime.htm

Автор - Savra
Дата добавления - 21.10.2014 в 15:09
mrdc Дата: Вторник, 21.10.2014, 17:25 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
взято отсюда

Спасибо, видел этот пример, в моем случае надо указывать разные таймеры для разных процедур, поэтому обычный OnTime с рекурсией не подходит, к сожалению.
 
Ответить
Сообщение
взято отсюда

Спасибо, видел этот пример, в моем случае надо указывать разные таймеры для разных процедур, поэтому обычный OnTime с рекурсией не подходит, к сожалению.

Автор - mrdc
Дата добавления - 21.10.2014 в 17:25
AndreTM Дата: Вторник, 21.10.2014, 17:41 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
надо указывать разные таймеры для разных процедур
Ну так и указывайте, кто вам запрещает-то?
Вы поймите: в приведенном коде Procedura_2() - это процедура сброса/установки таймера для ОДНОЙ ВАШЕЙ процедуры Proc(). А в Proc() в нужном месте вставляется вызов Procedura_2() :). Таких связок из пары процедур можно нарисовать сколько угодно - в процедуре с .Ontime вы планируете запуск процедуры с каким-то именем и нужным вам кодом действий, а при работе вашей процедуры - должен быть вставлен где-то код вызова соответствующей процедуры с планировщиком...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
надо указывать разные таймеры для разных процедур
Ну так и указывайте, кто вам запрещает-то?
Вы поймите: в приведенном коде Procedura_2() - это процедура сброса/установки таймера для ОДНОЙ ВАШЕЙ процедуры Proc(). А в Proc() в нужном месте вставляется вызов Procedura_2() :). Таких связок из пары процедур можно нарисовать сколько угодно - в процедуре с .Ontime вы планируете запуск процедуры с каким-то именем и нужным вам кодом действий, а при работе вашей процедуры - должен быть вставлен где-то код вызова соответствующей процедуры с планировщиком...

Автор - AndreTM
Дата добавления - 21.10.2014 в 17:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Циклический вызов процедуры при помощи таймера (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!