Створення секундоміра в Excel (базовий стиль + стиль тамади)

Під час роботи в IBM я був частиною міжнародного клубу ToastMasters. Це місце, де можна покращити комунікативні та лідерські якості.

Цікавим розділом щотижневих зустрічей була імпровізована розмова. У цій частині зустрічі людині була дана тема, і вона/вона мусила говорити на неї протягом 2 хвилин. Була призначена особа, яка звикла визначати час виступу і показувала зелену картку о 1 хвилині, жовту картку о 1:30 хвилині і червону картку через 2 хвилини.

Зазвичай для визначення часу промови використовується смартфон або годинник, а час записується вручну на папері.

Часто буває так, що людина забуває показувати кольорові картки або іноді забуває записати час для ораторів (це траплялося зі мною весь час). Маючи це на увазі, я створив секундомір у Excel, який допоміг би часу та запису промов.

Давайте спочатку дізнаємось, як створити базовий секундомір у Excel.

Як створити секундомір у Excel (базовий)

Під простим/базовим секундоміром в Excel я маю на увазі те, що починається, коли ми натискаємо кнопку запуску, і зупиняється, коли ми натискаємо кнопку зупинки.

Щось, як показано нижче:

Завантажте цей базовий секундомір у Excel

Щоб створити цей секундомір у Excel, вам потрібно знати про Застосування.Вчасно метод у VBA.

Метод Application.OnTime у VBA

Метод Application.OnTime можна використовувати, якщо ви хочете запустити вказаний код у майбутньому. Наприклад, ви можете використовувати його для відображення вікна повідомлень, яке нагадуватиме вам вставати і розгинати ноги через 1 годину або приймати ліки через 3 години.

Синтаксис програми. Метод OnTime:

Application.OnTime (Найраніший час, Процедура, LatestTime, Розклад)

  • EarliestTime: час, коли ви хочете запустити процедуру.
  • Процедура: Назва процедури, яку слід запустити.
  • LatestTime (необов’язково): Якщо інший код працює, а вказаний код неможливо запустити у вказаний час, ви можете вказати останній час, на який він повинен чекати. Наприклад, це може бути EarliestTime + 45 (що означає, що він буде чекати 45 секунд, поки інша процедура завершиться). Якщо навіть через 45 секунд процедуру не вдається запустити, її припиняють. Якщо ви не вкажете це, Excel зачекає, поки код можна буде запустити, а потім запустить його.
  • Розклад (необов’язково): Якщо встановлено значення Істина, він планує нову процедуру часу. Якщо значення False, це скасовує раніше встановлену процедуру. За замовчуванням це Істина.

Приклад методу Application.OnTime

Субтест () Application.OnTime зараз + TimeValue ("00:00:05"), "ShowMessage" Закінчити субпідряд Sub ShowMessage () MsgBox ("HELLO") End Sub

Перша частина макросу використовує метод Application.OnTime і через п’ять секунд запускає процедуру ShowMessage (у подвійних лапках). Процедура ShowMessage просто показує вікно повідомлення із запитом HELLO.

Ви можете використовувати цей формат для запуску будь -якої процедури через зазначений час з поточного часу.

Тепер, використовуючи цю концепцію, давайте розглянемо код для створення простого секундоміра в Excel.

Затемнити NextTick як дату, t як дату Sub StartStopWatch () t = Час виклику StartTimer Кінець Sub Sub StartTimer () NextTick = Час + TimeValue ("00:00:01") Діапазон ("A1"). Значення = Формат (NextTick - t - TimeValue ("00:00:01"), "hh: mm: ss") Application.OnTime NextTick, "StartTimer" End Sub Sub StopTimer () On Error Resume Next Application.OnTime EarliestTime: = NextTick, Процедура: = "StartTimer", Розклад: = Підручник з помилковим кінцем

Цей код складається з 3 частин:

  • Перша частина ініціалізує поточний час змінною t. Потім він викликає іншу процедуру StartTimer.
  • Процедура StartTimer використовує змінну NextTick, яка з кожною секундою збільшується на 1. На робочому аркуші клітинка А1 має таймер запуску, як ми визначили NextTick - t -TimeValue (“00:00:01”), “hh: mm: ss”) як значення в цій комірці. Потім він запускає код StartTimer знову кожну секунду.
  • StopTimer скасовує процедуру Application.Ontime, роблячи значення розкладу False. Це зупиняє таймер.

Ось що ви отримаєте з наведеним вище кодом (я призначив макроси кнопкам старт/стоп):

Це базовий секундомір у Excel.

Я називаю це базовим, оскільки ви не можете зупинитися посередині та перезапустити там, де ви залишили. Він завжди перезапускається з 1, коли ви натискаєте кнопку запуску.

Тепер, коли ви вивчили основи методу Application.OnTime, ви можете легко налаштувати це, щоб створити будь -який вид секундоміра в Excel.

Секундомір в Excel (для ToastMasters)

Я використав концепцію, обговорену вище, і створив секундомір у Excel, який можна використовувати на зустрічі тамад (про що я згадував на початку цього підручника).

Ось що можна зробити за допомогою цього секундоміра:

  • Ви можете зупинити таймер, а потім перезапустити його знову з того самого часу (записано до того часу).
  • Ви можете скинути таймер. Це встановлює значення таймера на 0. Як тільки ви це зробите, він автоматично записує загальний час, що минув.
  • Він змінює колір вікна таймера залежно від значення секундоміра (це може бути гарним нагадуванням для показу зелених/жовтих/червоних карток).

Ось як це виглядає:

У цій демонстрації вище я встановив зміну кольору кожні п’ять секунд. Ви можете легко вказати, коли потрібно змінити колір (зелена картка через 1 хвилину, жовта картка через 1,5 хвилини і червона картка через 2 хвилини), змінивши значення на аркуші розрахунку.

Як тільки ви натиснете кнопку скидання, колір таймера повернеться до білого, значення таймера стане 0, і він запише час у стовпці G.

Примітка: Оскільки ці файли містять макрос, перед використанням вам потрібно буде ввімкнути макроси. Відкривши книгу, ви побачите жовту кнопку - Увімкнути вміст. Натисніть на неї, щоб увімкнути макроси.

Якщо ви створюєте щось круте за допомогою таймера, поділіться цим зі мною.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave