Часы в ячейке 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

 

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

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

 

ССЫЛКА

 

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

Автор записи: Иван

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

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