Текущая дата в Excel

Как подсветить текущую дату в таблице Excel

Если вам нужно, чтобы сразу после открытия книги Excel, ячейки в которых дата совпадает с сегодняшней подсвечивались определённым цветом, то сделать это можно двумя способами:

  1. С помощью Условного форматирования.
  2. С помощью VBA.

Такое решение может понадобиться вам, если есть таблица Excel с днями рождения людей и вы не хотите пропустить этот день. Или, возможно у вас есть определённые важные даты с событиями и нужно чтобы они подсвечивались в тот день, когда это событие произошло.

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

Определение текущей даты с помощью Условного форматирования

  1. Откройте Книгу Excel.
  2. Выделите диапазон ячеек в которых нужно будет искать текущую дату.
  3. На вкладке Главная в блоке команд Стили выберите Условное форматирование → Создать правило.
  4. В появившемся окне выберите Использовать формулу для определения форматируемых ячеек.
  5. В поле Форматировать значение для которых следующая формула является истиной введите =ТЕКСТ(B2;"d m")=ТЕКСТ(СЕГОДНЯ();"d m"). Этой формулой мы сравниваем даты без учета года. Для этого, с помощью функции ТЕКСТ, мы преобразуем значение ячейки B2 в текстовый формат, содержащий только день (d) и месяц (m). То же самое мы делаем и с текущей датой, которую получаем с помощью функции СЕГОДНЯ() – преобразуем значение в текстовый формат, содержащий только день и месяц. После этого, мы сравниваем текстовые результаты.
  6. Нажмите на кнопку Формат…
  7. В появившемся окне перейдите на вкладку Заливка и выберите цвет заливки который будет иметь та ячейка в которой дата совпадает с сегодняшней.
  8. Нажмите OK.
  9. Нажмите OK.

Теперь, каждый раз, при открытии книги Excel, в указанном вами диапазоне ячеек будет происходить сравнение значения ячейки с текущей датой. Если они совпадут, то ячейка будет закрашена в тот цвет который вы указали.

Поиск текущей даты в ячейках с помощью VBA

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

Для этого:

  1. Откройте Книгу Excel.
  2. Сделайте клик правой кнопкой мыши по названию листа (в моем случае это Лист1) и в появившемся меню выберите Просмотреть код. Или нажмите Alt+F11.
  3. В окне Проектов VBA щелкните правой кнопкой мыши по ЭтаКнига (ThisWorkbook) и выберите пункт View Code.
  4. В окно редактирования кода вставьте приведенный ниже код и обязательно сохраните файл как Книга Excel с поддержкой макросов.

Код VBA для поиска и сравнения даты

Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim todayDayMonth As String

    ' Указываем рабочий лист, где нужно проверять даты
    Set ws = ThisWorkbook.Sheets("Лист1") ' Замените «Лист1» на название вашего листа

    ' Устанавливаем диапазон, который нужно проверить
    Set rng = ws.Range("B2:B100") ' Замените на ваш диапазон ячеек

    ' Получаем текущий день и месяц в формате "d m"
    todayDayMonth = Format(Now, "d m")

    ' Перебираем ячейки в диапазоне
    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            If Format(cell.Value, "d m") = todayDayMonth Then
                ' Устанавливаем фон ячейки
                cell.Interior.Color = RGB(255, 255, 0) ' Жёлтый фон
            Else
                ' Снимаем выделение (цвет фона), если дата не совпадает
                cell.Interior.Color = xlNone
            End If
        End If
    Next cell
End Sub

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

Видео: Как найти текущую дату в ячейках

Main Menu