Во время работы в IBM я был членом клуба ToastMasters International. Это место, где вы можете улучшить свои коммуникативные и лидерские навыки.
Интересной частью еженедельных встреч были импровизированные выступления. В этой части встречи человеку была предложена тема, и он / она должны были говорить по ней в течение 2 минут. Был назначенный человек, который обычно рассчитывал время выступления и показывал зеленую карточку через 1 минуту, желтую карточку через 1:30 и красную карточку через 2 минуты.
Обычно для измерения времени речи используется смартфон или часы, и это время записывается вручную на бумаге.
Часто бывает, что человек забывает показать цветные карточки или иногда забывает записать время выступлений (это происходило со мной постоянно). Помня об этом, я создал в Excel секундомер, который поможет отсчитывать время и записывать речи.
Давайте сначала узнаем, как создать простой секундомер в Excel.
Как создать секундомер в Excel (базовый)
Под простым / базовым секундомером в Excel я имею в виду то, что запускается, когда мы нажимаем кнопку запуска, и останавливается, когда мы нажимаем кнопку остановки.
Что-то вроде того, что показано ниже:
Загрузите этот базовый секундомер в Excel
Чтобы создать этот секундомер в Excel, вам необходимо знать о Приложение.Вовремя метод в VBA.
Метод Application.OnTime в VBA
Метод Application.OnTime можно использовать, если вы хотите запустить указанный код в будущем. Например, вы можете использовать его, чтобы показать окно сообщения, чтобы напомнить вам встать и размять ноги через 1 час или принять лекарство через 3 часа.
Синтаксис метода Application.OnTime:
Application.OnTime (EarlyTime, Процедура, LatestTime, График)
- EarliestTime: время, когда вы хотите запустить процедуру.
- Процедура: имя процедуры, которую следует запустить.
- LatestTime (необязательно): если выполняется другой код, а указанный код не может быть запущен в указанное время, вы можете указать LatestTime, в течение которого он должен ждать. Например, это может быть EarliestTime + 45 (что означает, что он будет ждать завершения другой процедуры в течение 45 секунд). Если даже через 45 секунд процедура не может быть запущена, она прекращается. Если вы не укажете это, Excel подождет, пока код будет запущен, а затем запустит его.
- Расписание (необязательно): если установлено значение True, будет запланирована новая временная процедура. Если False, то отменяет ранее установленную процедуру. По умолчанию это True.
Пример использования метода Application.OnTime
Sub test () Application.OnTime Now + TimeValue ("00:00:05"), "ShowMessage" End Sub Sub ShowMessage () MsgBox ("HELLO") End Sub
Первая часть макроса использует метод Application.OnTime и запускает процедуру ShowMessage (в двойных кавычках) через пять секунд. Процедура ShowMessage просто показывает окно сообщения с подсказкой HELLO.
Вы можете использовать этот формат для запуска любой процедуры по истечении указанного времени с текущего времени.
Теперь, используя эту концепцию, давайте посмотрим на код для создания простого секундомера в Excel.
Dim NextTick As Date, t As Date Sub StartStopWatch () t = Time Call StartTimer End Sub Sub StartTimer () NextTick = Time + TimeValue ("00:00:01") Диапазон ("A1"). Значение = Формат (NextTick - t - TimeValue ("00:00:01"), "чч: мм: сс") Application.OnTime NextTick, "StartTimer" End Sub Sub StopTimer () При ошибке Возобновить следующее приложение.OnTime EarliestTime: = NextTick, Процедура: = "StartTimer", Schedule: = False End Sub
Этот код состоит из 3 частей:
- Первая часть инициализирует текущее время переменной t. Затем он вызывает другую процедуру StartTimer.
- Процедура StartTimer использует переменную NextTick, которая увеличивается на 1 с каждой секундой. На листе в ячейке A1 есть таймер, поскольку мы указали NextTick - t -TimeValue («00:00:01»), «чч: мм: сс») как значение в этой ячейке. Затем он запускает код StartTimer снова через каждую секунду.
- StopTimer отменяет процедуру Application.Ontime, делая значение расписания False. Это останавливает таймер.
Вот что вы получите с приведенным выше кодом (я назначил макросы кнопкам запуска / остановки):
Это простой секундомер в Excel.
Я называю это базовым, поскольку вы не можете остановиться на середине и перезапустить с того места, где вы остановились. Он всегда будет перезапускаться с 1, когда вы нажимаете кнопку запуска.
Теперь, когда вы изучили основы метода Application.OnTime, вы можете легко настроить его, чтобы создать любой секундомер в Excel.
Секундомер в Excel (для ToastMasters)
Я использовал концепцию, описанную выше, и создал секундомер в Excel, который можно использовать на встрече Toastmasters (о которой я упоминал в начале этого урока).
Вот что можно сделать с помощью этого секундомера:
- Вы можете остановить таймер, а затем снова запустить его с того же времени (записанного до этого момента).
- Вы можете сбросить таймер. Это устанавливает значение таймера на 0. Как только вы это сделаете, он автоматически запишет общее прошедшее время.
- Он меняет цвет окна таймера в зависимости от значения секундомера (это может быть хорошим напоминанием, чтобы показать зеленые / желтые / красные карточки).
Вот как это выглядит:
В этой демонстрации я установил смену цвета каждые пять секунд. Вы можете легко указать, когда вы хотите изменить цвет (зеленая карточка через 1 минуту, желтая карточка через 1,5 минуты и красная карточка через 2 минуты), изменив значения на листе вычислений.
Как только вы нажмете кнопку сброса, цвет таймера снова станет белым, значение таймера станет 0, и он будет записывать время в столбце G.
Примечание. Поскольку эти файлы содержат макрос, вам необходимо включить макрос перед его использованием. Когда вы откроете книгу, вы увидите желтую кнопку - Включить контент. Щелкните по нему, чтобы включить макросы.
Если вы создаете что-то крутое с помощью таймера, поделитесь им со мной.