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

Обновлено: 04.07.2024

Hola, tengo un problema con esta programación en donde el temporizador avanza en 2 segundos y no 1, que puedo hacer??

No entiendo cómo tengo que solucionar para que el cronometro mno se pare cuando introduzco un valor. Si себе пункт аль trabajar ан эль Excel, пункт que quiero ип cronómetro у paraquesirve эль ботон парар? Грасиас

привет, таймер запущен. проблема в том, что он автоматически останавливается при использовании других книг. как мне его запустить?

Я хочу получить около 100 показаний времени простоя на моем листе Excel. Пожалуйста, помогите мне. невозможно написать коды для схемы i2c. Я не хочу светодиодный дисплей. пожалуйста, помогите мне

ДОБРЫЙ ДЕНЬ, РЕБЯТА
Пожалуйста, мне нужно создать таймер на моем листе Excel в форме, что это будет обратный отсчет до определенного, например, 45 дней каждые 5 дней он дает напоминание на листе с определенным цвет для каждого обратного отсчета. мне нужно как можно скорее.

Чтобы остановить таймер, когда вы вводите значения в определенные ячейки, вы должны использовать "Worksheet_Change", просто включите диапазон, который вы хотите прослушать, вам также потребуется создать глобальное логическое значение, чтобы при изменении чего-либо в ячейке диапазон, он установит для этого логического значения значение false, поэтому в следующий раз, когда он перейдет к подпроцедуре «Время», он вместо этого проверит, является ли логическое значение ложным, если вы добавите «Если TimerActive = False Then Exit Sub», в начало подпрограммы «Таймер», он завершится, если это логическое значение вернет false.


Затем внутри "Worksheet_Change" вы захотите добавить "TimerActive = True" в начале кода и что-то вроде следующего кода в любом месте.

If Not Intersect(Target, Range("B2:C57")) Is Nothing Then
TimerActive = False
End If

Это не объяснило, как запускается таймер, он запускается, как только вы открываете лист? Я смотрю, когда я добавляю значение 100, чтобы сказать ячейку «A1», таймер обратного отсчета запускается в ячейке «G2» (возможно, мигает или становится красным последние 30 секунд, чтобы показать срочность), и я хочу, чтобы он остановился, когда я введите значение в диапазоне ячеек (B2: C57) или, если в этих ячейках не было введено никакого значения, остановите его, снова щелкнув ячейку «A1» или щелкнув правой кнопкой мыши на обратном отсчете в ячейке «G2», я бы также например, получить результаты о том, сколько времени потребовалось для ввода значения в ячейки диапазона B2: C57, используя разницу между временем начала и временем окончания в ячейке, сопоставленной с ячейками диапазона, например D2. Не уверен, что все это имеет смысл, но мне бы очень нужна помощь. Идея состоит в том, что когда кто-то звонит, он отмечает на листе сумму на счете и начинается обратный отсчет, чтобы они знали, как долго они разговаривают по телефону. Если они примут платеж на сумму на счете, они добавят ее в другую ячейку, а затем лист добавит, сколько времени им потребовалось, чтобы получить этот платеж в еще одной ячейке, и процесс будет идти по строке каждый раз, когда они берут новый вызов. Но только одна ячейка будет запускать процесс каждый раз.

У меня уже есть VBA, который вводит имя пользователя, и когда лист заполнен, они могут нажать кнопку отправки, и он отправит его мне по электронной почте с темой и датой и удалит все целые, чтобы они могли начать снова в следующем день. Я хотел бы просто добавить вышеуказанное прямо в этот существующий VBA, если это возможно, таким образом, мне не нужно добавлять еще один модуль. Может ли кто-нибудь помочь мне с этим, пройти меня шаг за шагом? Мои навыки работы с VBA или другими программами очень ограничены.

Вам необходимо вызвать подпроцедуру «Таймер». Обычно это делается путем вызова ее в другой подпрограмме/функции, если вы хотите, чтобы обратный отсчет начинался после ввода значения в ячейку «A1» и останавливался при вводе данных в ячейку «A1». другой диапазон, затем вам нужно прослушать изменения в этих ячейках и создать логическое значение для подпроцедуры таймера, чтобы он знал, когда остановиться, для этого создайте подпроцедуру «Worksheet_Change», она будет прослушивать рабочий лист для любого изменения, затем мы создаем белый список диапазонов, в которых будет выполняться наш код.


Sub Worksheet_Change(ByVal Target As Range)

'Логическое значение по умолчанию
Dim TimerActive As Boolean: TimerActive = True

'Здесь мы вызываем таймер и получаем значение, установленное в G2
If Not Intersect(Target, Range("A1")) Is Nothing Then

Если IsEmpty(Target), то TimerActive = False: выйти из Sub

При ошибке GoTo Errr:

Размерьте i как целое число: i = Target

ElseIf Not Intersect(Target, Range("B2:C57")) Is Nothing Then

Если IsEmpty(Target), то выйти из Sub

'При необходимости добавьте сюда код

'Ошибка обработки
Exit Sub
Errr:
MsgBox "A1 Должно быть целым числом"

Здравствуйте, Хосе, я заметил, что автор не ответил на ваш комментарий, я только недавно обнаружил его сообщение и подумал, что помогу вам, если он вам все еще нужен. Чтобы запустить таймер, вам нужно вызвать подпроцедуру, поэтому предположим, что на вашем листе есть подпрограмма, которая проверяет любые изменения в ячейке A1, например:

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

Для создания таймера обратного отсчета будет использоваться макрос. Однако для работы с этим учебным пособием не требуются предварительные знания макросов или VBA в Excel.

Если вы знакомы с VBA, вы можете просто скопировать полный код макроса снизу и пропустить все остальное.

Разделы:

Создайте таймер обратного отсчета

Чтобы сделать таймер обратного отсчета, нам нужно установить макрос в Excel, не волнуйтесь, это просто. Однако перед этим нам нужно настроить ячейку в электронной таблице для хранения таймера.

Когда таймер дойдет до нуля, он остановится.

Добавить функцию остановки или паузы к таймеру

Теперь, когда у нас есть работающий таймер, было бы неплохо иметь возможность его останавливать.

Для этого нам нужно добавить всего пару вещей в наш макрос.

  1. Нажмите Alt + F11 и перейдите к модулю, который вы добавили в предыдущем разделе. Если он еще не открыт, он должен быть указан в левой части окна и называться Module1, дважды щелкните его.
  2. После того как вы увидите макрос, добавьте над ним следующую строку кода:

Это все!

Теперь постоянное обращение к окну макросов, сочетание клавиш Alt + F8, может сильно раздражать, поэтому давайте заставим эти макросы запускаться с помощью некоторых кнопок на рабочем листе.

Добавить кнопки в электронную таблицу для управления таймером

Это простая функция, если у вас есть работающие макросы.

Просто перейдите в меню "Вставка" и выберите "Фигуры", а затем выберите прямоугольник со скругленными углами.

9c35bbba253415c7e1f0d2e7e9f1d730.jpg

Настройте размер кнопок и добавьте к ним текст.

a7b091113e953d4f09985f976de44a17.jpg

Щелкните правой кнопкой мыши первую кнопку и выберите «Назначить макрос».

40570218bb02612d5eb770c6adbe3319.jpg

В открывшемся окне нажмите таймер и нажмите OK.

9605fd226db37c5fa291bddfb439ac73.jpg

Повторите это для следующей кнопки, очевидно, выбрав на этот раз stop_timer.

52359ec6ced46e5a9cf883f8f493bae6.jpg

Если вы хотите узнать больше о том, как добавить кнопки в Excel и заставить их запускать макросы, ознакомьтесь с этим руководством:

Полный код макроса таймера обратного отсчета

Вот полный код макроса, необходимый для этого таймера:

Этот код входит в обычный модуль.

Примечания

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

Чтобы запустить этот макрос при открытии книги Excel, прочтите следующие руководства:

Обязательно загрузите электронную таблицу, прикрепленную к этому руководству, чтобы вы могли видеть все в Excel и легко копировать/вставлять то, что вам нужно.

Вопрос? Спросите об этом на нашем форуме Excel

Курс Excel VBA — от новичка до эксперта

200+ видеоуроков 50+ часов обучения 200+ руководств Excel

С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

Курс VBA — от новичка до эксперта

Запуск макроса в Excel с заданными интервалами
Учебное пособие: запуск макроса каждые 30 секунд, 1 минуту, 10 минут, 1 час и т. д.; этот метод позволяет т.

Годы, месяцы, дни между двумя датами в Excel
Учебное пособие: я нашел довольно запутанный метод расчета количества лет, месяцев и дней.

Отключить всплывающее окно форматирования в Excel
Учебное пособие: как остановить появление надоедливого окна форматирования, «Мини-панели инструментов», когда вы нажимаете.

Форматирование даты для отображения только дня недели в Excel
Учебное пособие: Как отформатировать дату таким образом, чтобы из этой даты отображался только день недели. Результат: .

Ручной расчет формул и функций в Excel
Учебное пособие: как заставить Excel пересчитывать все формулы и функции без редактирования или ввода .

Формы для защиты от идиотов в Excel — Часть 1 — Форматирование
Учебное пособие: Курс по формам В этом учебном пособии показано, как создать форму на обычном листе в E.

Подпишитесь на еженедельные уроки

БОНУС: подпишитесь сейчас, чтобы загрузить нашу электронную книгу Top Tutorials!

Ссылка на наши 15 лучших учебных пособий была отправлена ​​вам, проверьте свою электронную почту, чтобы загрузить ее!

(Если вы не видите электронное письмо, проверьте папку "Спам" или "Промоакции" и обязательно добавьте нас в список контактов, чтобы получать наши электронные письма в будущем.)

Работая в IBM, я был членом международного клуба ToastMasters. Это место, где вы можете улучшить свои коммуникативные и лидерские навыки.

Интересным разделом еженедельных встреч были импровизированные выступления. В этой части встречи человеку давали тему, и он должен был на нее высказаться в течение 2 минут. Был назначен человек, который обычно регулировал время выступления и показывал зеленую карточку на 1 минуте, желтую карточку на 1:30 минуте и красную карточку через 2 минуты.

Обычно для хронометража речи используется смартфон или часы, а затраченное время записывается вручную на бумаге.

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

Давайте сначала узнаем, как создать простой секундомер в Excel.

Это руководство охватывает:

Как создать секундомер в Excel (базовый)

Под простым/базовым секундомером в Excel я подразумеваю то, что запускается, когда мы нажимаем кнопку запуска, и останавливается, когда мы нажимаем кнопку остановки.

Как показано ниже:

Скачать файл

Загрузить этот базовый секундомер в приложении Excel. Метод OnTime в VBA

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

Синтаксис метода Application.OnTime:

Приложение. OnTime ( Самое раннее время, Процедура, Самое позднее время, Расписание)

  • EarliestTime: время, когда вы хотите запустить процедуру.
  • Процедура: имя процедуры, которую нужно запустить.
  • LatestTime (необязательно). Если выполняется другой код, а указанный вами код не может быть запущен в указанное время, вы можете указать LatestTime, в течение которого он должен ждать. Например, это может быть EarlyestTime + 45 (что означает, что другая процедура будет ждать 45 секунд). Если даже через 45 секунд процедура не может быть запущена, она прекращается. Если вы не укажете это, Excel будет ждать, пока код можно будет запустить, а затем запустит его.
  • Расписание (необязательно): если установлено значение True, будет запланирована новая временная процедура. Если False, то отменяет ранее установленную процедуру. По умолчанию это True.

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

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

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

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

Этот код состоит из 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.

Скачать файл

Загрузите секундомер ToastMasters Style в Excel, чтобы включить макросы перед его использованием. Когда вы откроете книгу, вы увидите желтую кнопку «Включить содержимое». Нажмите на нее, чтобы включить макросы.


Профессионалы, которые привыкли организовывать свою жизнь в Excel, в какой-то момент хотели, чтобы в Excel был встроен таймер, помогающий отслеживать общие задачи. В этой статье показано, как создать макрос, который включает таймер/секундомер, подходящий для управления временем на листе.

Вы можете загрузить готовый файл с кодом, нажав на кнопку


Подготовка к созданию таймера

На новом листе выберите столбцы от A до F и отрегулируйте ширину столбцов до 60 пикселей, перетащив их. (или перейдите в раздел Главная ► Формат ► Ширина столбца)

Выберите диапазон C6:E7 ► на вкладке "Главная" в группе "Выравнивание" нажмите "Объединить и центрировать"

Добавьте толстую рамку к объединенным ячейкам.

Нажмите сочетание клавиш CTRL + 1 ► Нажмите на вкладку "Граница"

Выберите толстую рамку ► Выберите синий цвет ►Нажмите Контур ► ОК


< /p>

Установите шрифт Impact, 28 pt, черный цвет

Применить формат времени на вкладке «Число» диалогового окна «Формат ячейки»


< /p>

Введите 0:00:00 в ячейку C6 (следите за строкой формул).


< /p>

Теперь нам нужно принести 3 изображения (или фигуры), которые будут использоваться в качестве кнопок для запуска, приостановки и остановки таймера. Расположите их поверх ячейки C6. Измените размер и выровняйте их.


< /p>

Прежде чем мы начнем писать простой код, нам нужно понять 2 термина:

DoEvents — это команда Excel VBA, которая временно приостанавливает выполнение макроса, чтобы обновить экран и выполнить все ожидающие события в Excel. Это может позволить пользователю взаимодействовать с электронной таблицей Excel, в то время как макрос выполняется в той же книге!

DATEADD — это функция даты и времени в VBA, и эта функция имеет выходное значение в виде даты, эта функция принимает ввод в формате даты и добавляет его, чтобы вернуть новую дату, синтаксис этой функции принимает три аргумента Интервал , номер и дата.

ДатаДобавить (интервал, число, дата)

Параметры или аргументы

Интервал

Интервал времени/даты, который вы хотите добавить. Это может быть одно из следующих значений:

Номер

Количество интервалов, которые вы хотите добавить.

Дата, к которой должен быть добавлен интервал.

Возврат

Функция DATEADD возвращает значение даты.

Теперь мы готовы переключиться на VBA и написать код.

Чтобы переключиться в редактор Visual Basic, нажмите ALT+F11

В редакторе Visual Basic создайте модуль, щелкнув меню «Вставка» и выбрав «Модуль». Кроме того, вы можете использовать сочетание клавиш ALT+I+M

Мы начинаем с объявления переменной, которая будет использоваться в нескольких подпрограммах, поэтому мы пишем ее в верхней части модуля. Мы используем ключевое слово «Dim», называем его «a» и устанавливаем тип данных Boolean (True/False)

Затемнить a как логическое значение

Когда для этой переменной установлено значение TRUE, мы хотим, чтобы счетчик работал, а если для него установлено значение FALSE, мы хотим остановить или сбросить таймер.

Первый код для запуска таймера следующий:

(Если вы скопируете и вставите, настройте ссылку на лист и ячейку)

Вспомогательный таймер запуска()

а = Истина

Делать во время

События

Листы(1).Ячейки(6, "C") = Формат(ДатаДобавить("s", 1, Листы(1).Cells(6, "C")), "чч:мм:сс")

Цикл

Конец подписки

Что означает этот код?

  1. Я установил для переменной "a" значение TRUE = запустить таймер
  2. Я использую оператор Do While… Loop для повторения инструкций до тех пор, пока «a» имеет значение TRUE
  3. Я установил время ожидания в одну секунду перед переходом к следующей строке.
  4. DoEvents ► позволяет мне видеть обновление таймера на листе и работать в Excel во время выполнения кода.
  5. Затем я добавляю одну секунду к существующему значению в ячейке C6, используя функцию DateAdd VBA, и мы форматируем его как «чч:мм:сс»
  6. Затем повторяем: подождите секунду и добавьте секунду

Чтобы остановить таймер, мы создаем еще одну подпрограмму, которая изменяет переменную на false

Вспомогательный таймер паузы()

а = Ложь

Конец подписки

Чтобы сбросить таймер на ноль, мы создаем третью подпрограмму, которая изменяет переменную на false и устанавливает значение C6 на 00:00:00 (если вы скопируете и вставите, настройте ссылку на лист и ячейку)

Вспомогательный таймер сброса()

а = Ложь

Листы(1).Ячейки(6, "C") = "00:00:00"

Конец подписки


< /p>

После написания трех подпрограмм мы снова переключаемся в Excel ALT +F11

Мы прикрепим каждую подпрограмму к одной из фигур, щелкнув правой кнопкой мыши, и в контекстном меню выберите «Назначить макрос», затем выберите соответствующий макрос


< /p>

Теперь проверьте, нажимая на каждую фигуру: Пуск – Стоп – Сброс.

Вы можете загрузить готовый файл с кодом, нажав на кнопку


< /p>

Сам по себе Excel не имеет функции включения таймера обратного отсчета. Однако с помощью Visual Basic для приложений можно написать простой код для выполнения функции обратного отсчета. В этой статье показано, как создать макрос, который позволяет таймеру вести обратный отсчет, подходящий для управления временем на листе.

Мы можем создать новый лист и назвать его CD (Обратный отсчет)

Создайте настройку, идентичную той, которую мы создали для таймера.

В ячейке C6 число будет 00:15:00, что означает, что счет будет начинаться с 15 минут вниз. Вы можете изменить число по мере необходимости.

В редакторе Visual Basic скопируйте предыдущие коды, создайте новый модуль и вставьте коды: мы внесем в код простые изменения следующим образом:

  1. Назовите переменную «b».
  2. Изменить название листа
  3. Измените имена подпрограмм (нельзя использовать одинаковые имена)
  4. Измените число в функции DateAdd на минус 1 (чтобы уменьшить время)
  5. Измените значение кода сброса на «00:15:00».

3 кода будут выглядеть так:

Затемнение b как логическое значение

Подпрограмма StartCountDown()

b = Истина

Делать пока b

События

Листы("CD"). Ячейки(6, "C") = Формат(ДатаДобавить("s", -1, Листы("CD"). Ячейки(6, "C")), "чч: мм:сс")

Цикл

Конец подписки

Подпрограмма PauseCountDown()

b = Ложь

Конец подписки

Подпрограмма ResetCountDown()

b = Ложь

Листы("CD").Ячейки(6, "C") = "00:15:00"

Конец подписки


< /p>

Закройте редактор Visual Basic и вернитесь в Excel, повторите процесс назначения макросов фигурам.


< /p>

Протестируйте 3 макроса обратного отсчета

Сохранить файл как файл Excel с поддержкой макросов .xlsm

Наслаждайтесь функциями таймера/секундомера и таймера обратного отсчета.


< /p>

Приложив немного больше усилий, вы можете превратить этот таймер в креативные цифровые часы, изменить его размер и оставить сбоку от окна Excel. Узнайте, как это сделать, посмотрев обучающее видео на моем канале YouTube. Не забудьте подписаться на мой канал, чтобы получать уведомления о выходе новых руководств.


< /p>

Читайте также:

ЗначениеОбъяснение ЗначениеОбъяснение
ггггГод wДень недели
qКвартал ннНеделя
мМесяц ч< /td>Час
гДень года nМинута< /td>
dДень sСекунда