Как сделать таймер в excel

Таймер в Excel

Не помню кто из великих сказал… И не помню что. Но в процессе разработки vba-приложений время от времени возникает необходимость использовать таймер. «Из коробки» решения, к сожалению, нет.

Application.OnTime?

Данный метод отложенных вызовов сам по себe решает проблему, но лишь один раз. В том смысле, что таймер срабатывает лишь единожды — указать переодичность вызовов, увы, нельзя.

Application.OnTime + рекурсия?
Evaluate в помощь?

Написать свой класс и вызывать внутри необходимую процедуру с помощью Application.Evaluate. Особо упорные в стремлении создать приемлемый метод вызова таймера доходят до этого решения и упираются в стран/ш/ный баг, отловить который достаточно сложно: udf-функция переданная в переменной будет вызываться каждый раз

Потому что гладилус

Способ обойти этот баг пока найден лишь один:

Решение

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

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

Не надо пропускать:

  • рекламные и PR-публикации
  • вопросы и просьбы (для них есть Хабр Q&A);
  • вакансии (используйте Хабр Карьеру)
  • статьи, ранее опубликованные на других сайтах;
  • статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
  • жалобы на компании и предоставляемые услуги;
  • низкокачественные переводы;
  • куски программного кода без пояснений;
  • односложные статьи;
  • статьи, слабо относящиеся к или не относящиеся к ней вовсе.

Таймер (секундомер) в Excel — система электронного хронометража

Программа предназначена для фиксации времени событий (хронометража) в таблице Excel в режиме онлайн.

Типичное применение такой программы — фиксации времени прохождения кругов автогонщиками, но подойдёт данный секундомер и для учёта времени на любых других спортивных состязаниях.

  • изменяемое количество участников — от 1 до 20
  • изменяемое количество кругов (заездов, состязаний) — от 1 до 6
  • возможность начислять отдельным участникам штрафные баллы (секунды)
  • автоматический подсчёт суммарного времени
  • распределение мест среди участников
  • возможность сортировки таблицы результатов состязания по любому параметру
  • фиксация времени с точностью до сотых долей секунды

Смотрите также программу для игрового клуба / интернет кафе
для учёта времени и платежей нескольких игроков на приставках

Смотрите также упрощённую (предыдущую) версию программы-секундомера,
без возможности выбора количества участников и числа состязаний

В последней версии программы, желтая кнопочка сверху, в принципе, не нужна — теперь всё и без неё работает.
Разве что перед изменением количества участников потребуется принудительно остановить главный таймер.

Обратите внимание, что следующие действия:

  • добавление или удаление участников
  • изменение количества кругов
  • простановка штрафных баллов (секунд)

возможны только при остановленном главном таймере.

Не пытайтесь во время соревнования, при включенных секундомерах, прописать кому-то штрафные секунды,
— это приведёт к полной остановке макроса, и, соответственно, к некорректным результатам.

Ссылка на основную публикацию