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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2012, 01:58   #1
sa920
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 17
По умолчанию макрос с задержкой

как записать макрос с задержкой 100 милисекунд?и могли бы примеры привести
sa920 вне форума Ответить с цитированием
Старый 02.06.2012, 05:19   #2
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Используйте
Код:
Application.OnTime
Djeki вне форума Ответить с цитированием
Старый 02.06.2012, 08:17   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
как записать макрос с задержкой 100 милисекунд
Задержки бывают разные.
Как приостановить выполнение макроса на определённое время
Цитата:
Для того, чтобы приоставить выполнение макроса на определённое время, достаточно использовать метод Wait об'екта Application. Далее следуют пять примеров, которые могут остановить выполнение макроса на десять секунд.
Application.Wait Time:=DateAdd("s", 10, Now)
Application.Wait Time:=Now + #12:00:10 AM#
Application.Wait Time:=Now + 10 / 86400
Application.Wait Time:=Now + TimeSerial(0, 0, 10)
Application.Wait Time:=Now + TimeValue("0:00:10")
Как используя функции WinAPI приостановить выполнение программы на определённое время
Цитата:
Для того, чтобы приостановить выполнение программы на нужное время, можно воспользоваться нижеприведённым вариантом. Данную процедуру имеет смысл использовать в том случае, когда стандартные возможности, как-то метод Wait об'екта Application не подходят, например, если время должно составлять 250 милисекунд.
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Private Sub WinAPI_MacroWait()
MsgBox "Первое сообщение" 'используется только для демонстрации

Sleep 250&

MsgBox "Второе сообщение" 'аналогично
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.06.2012, 13:43   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Всё делается проще.
http://excelvba.ru/code/UsefulCode

Цитата:
10. Использование Application.OnTime с задержкой меньше секунды

Код:
Sub ЗапускМакросаСНебольшойЗадержкой() ' по мотивам макроса ZVI_Timer
   ЗадержкаВСекундах = 0.3    ' в секундах
   НазваниеМакроса$ = "test"    ' этот макрос будет запущен через 0.3 сек.
   ЗадержкаВЧасах$ = Replace(Format(CDbl(TimeSerial(0, 0, 1)) * ЗадержкаВСекундах, "0.000000000"), ",", ".")
    macro = "ON.TIME(NOW()+" & ЗадержкаВЧасах$ & ", """ & НазваниеМакроса$ & """)" ' формируем команду запуска
   ExecuteExcel4Macro macro ' macro = ON.TIME(NOW()+0.000003472, "test")
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 02.06.2012, 20:08   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Игорь, очень интересно Только это не "ЗадержкаВЧасах", а просто числовое представление времени. Я бы сделал так:
Код:
   Задержка$ = Str(#0:0:1# * ЗадержкаВСекундах)
   macro = "ON.TIME(NOW()+" & Задержка$ & ", """ & НазваниеМакроса$ & """)" ' формируем команду запуска
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 03.06.2012, 00:44   #6
sa920
Пользователь
 
Регистрация: 06.05.2012
Сообщений: 17
По умолчанию

Спасибо за советы ,очень помогли советы))
sa920 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DDE с задержкой sart21 Microsoft Office Excel 8 14.08.2011 19:13
Немогу разобратся с задержкой Lips!! Общие вопросы C/C++ 2 17.04.2011 18:10
C# Сортировка массива с задержкой EvgeniyTretyak Фриланс 2 12.01.2011 01:45
Вывод изображений с задержкой. hk47 Компоненты Delphi 11 28.04.2010 09:27
многострочная подсказка с задержкой dimonbest Общие вопросы Delphi 6 24.03.2008 13:13