Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310

DoEvents & Время

04.12.2022, 10:28. Показов 2320. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли команде DoEvents задать время ?
напр. DoEvents,0.2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2022, 10:28
Ответы с готовыми решениями:

Что изменить в строке чтобы считалось деление Cells(x , 'B').FormulaR1C1 = '= ( & a1 & )/(& a2&) ' ?
Что изменить в строке чтобы считалось деление Cells(x , 'B').FormulaR1C1 = '= ( & a1 & )/(& a2&) ' где а1 и а2 значения в...

Убить приложение во время Application.DoEvents()
Пытаюсь во время выполнения формой Application.DoEvents() выйти с помощью Application.Exit(). Форма закрывается, но остается висеть в...

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' & ''' &...

37
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
05.12.2022, 17:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от 0mega Посмотреть сообщение
Желаемый результат похож, но исполнение разное
(первую минуту работает пошаговое исполнение макроса, а потом Run
ЗЫ
файл получился большой.
Забыли "timeout" добавитьв в цикл
Оптимизированная версия таймаута
Visual Basic
1
2
3
4
5
6
7
Sub timeout(interval!)
    Dim tmEnd!
    tmEnd = Timer + interval
    DoEvents
    While Timer < tmEnd
    Wend
End Sub
Добавлено через 49 минут
Что интересно, "дуплет" в некоторых случаях лучше работает..
Visual Basic
1
2
DoEvents
DoEvents
1
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
05.12.2022, 18:38
testuser2, если запустите timeout в 23:59:59 на interval 2 сек. (ну т.е. с переходом за полуночь),
то попадёте в бесконечный цикл.
И DoEvents лучше вставить внутрь цикла, а то даже CTRL+BREAK не спасут от зависания...
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
05.12.2022, 18:45
SergioJek, а если поставить 3 DoEvents подряд, то может открыться портал в параллельнопоточность после полуночи
0
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310
06.12.2022, 08:14  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Оказывается вопрос содержится в первом ответе
вот меня любопытство распирает:
Как же вы собирались участвовать в теме, если о содержании узнали из последнего ответа ?

Добавлено через 3 минуты
Цитата Сообщение от testuser2 Посмотреть сообщение
если поставить 3 DoEvents подряд, то может открыться портал в параллельнопоточность после полуночи
я об этом знаю.
именно от туда и пишу

Добавлено через 11 минут
Цитата Сообщение от testuser2 Посмотреть сообщение
Забыли "timeout" добавитьв в цикл
Оптимизированная версия таймаута
Visual BasicВыделить код

Sub timeout(interval!)
    Dim tmEnd!
    tmEnd = Timer + interval
    DoEvents
    While Timer < tmEnd
    Wend
End Sub
interval - задется вручную или как-то формируется ?
а чем этот timeout отличается ?
Visual Basic
1
2
3
4
5
6
Sub timeout(duration_ms As Double)
       start_time = Timer
       Do
       DoEvents
       Loop Until (Time - start_time) >= duration_ms
End Sub
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
06.12.2022, 12:26
Цитата Сообщение от 0mega Посмотреть сообщение
а чем этот timeout отличается ?
технически ни чем, просто мне не понравпился вызов DoEvents() в каждой итерации пустого цикла и имя "duration_ms", ведь "duration" задается не в милисекундах. 3й момент - ненужное вычисление (Timer()- start_time) в каждой итерации, когда можно одни раз посчитать end_time. Ну и прямое указание типов. В общем, в моем варианте производительность пустого цикла будет выше - больше итераций за то же самое время.
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
06.12.2022, 12:32
Цитата Сообщение от testuser2 Посмотреть сообщение
не понравпился вызов DoEvents() в каждой итерации пустого цикла
и напрасно. Прямо напрашиваетесь в полуночный портал
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
06.12.2022, 13:39
Цитата Сообщение от SergioJek Посмотреть сообщение
и напрасно
не знаю, мордочка движется плавно..
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub shiftface()
    Dim cnt!, tmEnd!
    Const step! = 1.7
    Const interval! = 0.005
    With Shapes("Smiley Face 3")
      cnt = .Left
      Do
        DoEvents
        DoEvents
        cnt = cnt + step
        .Left = cnt
        tmEnd = Timer + interval
        While Timer < tmEnd
'            DoEvents
        Wend
      Loop Until cnt > 300
      .Left = 0
    End With
End Sub
Добавлено через 31 минуту
Справделивости ради проверил код на другой (удаленной) машинке с x64 оффисом и там результат выглядит несколько иначе, не так плавно. Лучше оказался такой вариант
Visual Basic
1
2
3
4
5
6
7
8
9
10
     Do
        DoEvents
'        DoEvents
        cnt = cnt + step
        .Left = cnt
        tmEnd = Timer + interval
        While Timer < tmEnd
'            DoEvents
        Wend
     Loop Until cnt > 300
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
06.12.2022, 13:52
А теперь так попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Time = "23:59:59"
     Do
        DoEvents
'        DoEvents
        cnt = cnt + step
        .Left = cnt
        tmEnd = Timer + interval
        While Timer < tmEnd
'            DoEvents
        Wend
     Loop Until cnt > 300
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
06.12.2022, 14:08
Цитата Сообщение от SergioJek Посмотреть сообщение
А теперь так попробуйте
У меня нет переменной Time и у чувака на видео кстати тоже..
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
06.12.2022, 14:24
https://learn.microsoft.com/ru... -statement
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
06.12.2022, 15:07
SergioJek, проверяли? Просто не вижу причины для безконечного цикла о котором вы пришете, объясните логику.
0
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
06.12.2022, 20:31
Timer в полночь начинает тикать с 0сек и до 86400сек следующей полночи. И так по кругу.
И если tmEnd = Timer + interval окажется = 85399.999+0.005=86400.004,
то когда Timer (от 0 до 86400) достигнет tmEnd (86400.004)?
Правильно,никогда! По крайней мере в винде это так.

Добавлено через 4 часа 24 минуты
Костыль, с которым можно и несколько суток (годов) скакать в этом цикле и в итоге выйти из него в заданное время
Visual Basic
1
2
3
4
5
6
7
        dim tm#
        tm=Timer
        tmEnd = Tm + interval
        do
          if timer<tm then tmEnd=tmEnd-86400
          tm=Timer
        loop While tm< tmEnd
1
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310
07.12.2022, 06:56  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
не знаю, мордочка движется плавно..
Ругается машина. Хочет какую-то переменную для формы
Миниатюры
DoEvents & Время  
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
07.12.2022, 07:45
0mega, это должно быть в модуле листа, либо с указанием листа
Visual Basic
1
With Sheets("Лист1").Shapes("Sm")
Добавлено через 8 минут
Да, не заметил, нет "End With"
0
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310
07.12.2022, 07:58  [ТС]
куда надо добавить ?
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
07.12.2022, 09:08
См.#27
0
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310
07.12.2022, 09:33  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
См.#27
всего-то 19 строк ?!

Добавлено через 12 минут
понял
сейчас попробую
0
6 / 7 / 1
Регистрация: 05.11.2013
Сообщений: 310
07.12.2022, 09:57  [ТС]
те же яйца, только в профиль...
даже увеличение интервала ( 15-ая секунда) ни к чему не привело
Вложения
Тип файла: zip _Moоn.zip (5.52 Мб, 10 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2022, 09:57

error '80020009' &Icirc;&oslash;&egrave;&aacute;&ecirc;&agrave;. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error '80020009' ...

Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2
pci\ven_8086&amp;DEV_266E&amp;SUBSYS_A002145&amp;REV_05\3&amp;13C0B0C5&amp;0&amp;F2 Мультимедиа аудиоконтроллер помогите плз найти...

Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020
Помогите пожалуйста найти драйвер на мультимедиа видеоконтролер ...

немогу найти драйвера на PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17
Мультимедиа аудиоконтроллер PCI\VEN_1039&amp;DEV_7012&amp;SUBSYS_810D1043&amp;REV_A0\3&amp;61AAA01&amp;0&amp;17

Нужен драйвера, код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17
всем привет !! уменя нет звука нужен драйвер код PCI\VEN_1039&amp;DEV_7012&amp;SUBSYS_0C98105B&amp;REV_A0\3&amp;B1BFB68&amp;0&amp;17 скачал прогу их много ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru