Часы в ячейке Excel

Часы в ячейке Excel

Приветствую, уважаемый читатель!

Сегодня темой поста будет вопрос одного из подписчиков: «Как вставить в ячейку таблицы время?» Вопрос требует некоторого пояснения. Нам требуются полноценные часы, которые будут отображать текущее время на компьютере.

Пришедшие поначалу в голову формулы СЕГОДНЯ() , ДАТА() и ВРЕМЯ() здесь не помогут, так как они будут оставлять «отпечатки» сегодняшних дней, дат, часов и секунд на момент ввода формулы.  Также формулы не поддерживают автоматическое обновление.

Выход один — будем использовать макросы.

Пройдёмся по этапам создания нашей процедуры:

  1. Создадим новую книгу в Excel;
  2. На вкладке «Разработчик» жмём кнопку VisualBasic;
  3. Выполним команды Insert -> Module.

Часы в ячейке Excel

 

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

 

Sub UpdateTime()

Dim varNextCall As Variant

‘записываем в ячейку текущее время
Cells(1, 1).Value = Now

‘записываем в varNextCall время, когда вызвать макрос в следующий раз (через 1 секунду)
varNextCall = TimeSerial(Hour(Now), Minute(Now), Second(Now) +1)

‘уведомляем программу в вызове макроса
Application.Ontime varNextCall, «UpdateTime»

End Sub

 

Часы в ячейке Excel

 

Мы создали макрос записи обновления времени, который поместит в ячейку А1 текущее время, его можно будет вызвать сочетанием Alt+F8 или  щёлкнуть по кнопке «Макросы».

Часы в ячейке Excel

 

Следующим шагом будет сохранение книги. Обязательно сохранить книгу с поддержкой макросов (.xlsm)!

 

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

 

Часы в ячейке Excel

 

В ячейке отображается дата и время (по компьютеру), в строчке формул также добавляются секунды для более удобного просмотра.

В этом примере есть также один минус — как только мы закроем книгу, работа макроса прекратится. Для того, чтобы избежать этого мы прикрутим к макросу автоматический старт (как и в случае с КУРСАМИ ВАЛЮТ).

  1. Щёлкаем кнопку VisualBasic;
  2. В области Project два раза кликаем строчку «Эта книга»;
  3. В появившемся окне в поле «Object» выбираем «Workbook» и в поле «Procedure» название процедуры «Open»;
  4. Между появившихся строчек вводим вызов нашего макроса — Call UpdateTime.

 

Часы в ячейке Excel

 

Макрос можно переместить в любую ячейку. Теперь даже при закрытии/открытии у нас будет точное время!

Буду рад всем оставленным отзывам и комментариям! Ссылка на файл примера ниже: 

 

ССЫЛКА

 

Если остались вопросы посмотрите обучающее видео:

Post Author: Иван

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.