Аналитика25 февраля 2026 г.

Excel vba работа с датами

Автор
Ненашев А.
На чтение
7 мин
Дата обновления
15.04.2026
Срок обучения:3 недели
Курсы Excel для начинающих
Научитесь составлять сводные таблицы, производить расчеты по формулам, делать визуализацию данных с помощью диаграмм, использовать функции даты и времени. Повысьте скорость вашей работы в Excel на 90%

Функции для работы с датой и временем

Функции даты / времени VBA, функции Date (), Time (), DateAdd (), DateDiff (), DatePart (), DateSerial (), Timer()

Без функций даты и времени обычно просто невозможно обойтись. Наиболее важные функции VBA для работы с датой / временем:

  • Date () — возвращает текущую системную дату. Вы можете установить его с помощью одноименного оператора, например, так:
  • Time () возвращает текущее системное время, а Now () возвращает дату и время вместе.
  • DateAdd () — возможность добавлять к дате указанное количество лет, кварталов, месяцев и т.д. — до секунд.
  • DateDiff () — возможность получить разницу между датами (опять же, в единицах от лет до секунд).
  • DatePart () — очень важная функция, которая возвращает указанную часть даты (например, только год, только месяц или только день недели).
  • DateSerial () — возможность создавать значение даты на основе переданных символьных значений. DateValue () делает то же самое, различия заключаются в формате получаемых значений. TimeSerial () и TimeValue () работают аналогично (для time().
  • Day () (в дополнение к Year (), Month (), Weekday (), Hour (), Minute (), Second ()) являются специализированными заполнителями для функции DatePart (), которые возвращают желаемую часть даты.
  • MonthName () — возвращает название месяца буквами в зависимости от его номера. Возвращаемое значение зависит от языкового стандарта. Если они русские, будет возвращено русское название месяца.
  • Timer () — возвращает количество секунд с полуночи.

Если вам нужны более продвинутые функции даты и времени, в вашем распоряжении объектная модель Outlook. Например, с его помощью можно получить информацию о праздничных и рабочих / нерабочих днях в большинстве стран мира. Подробнее — в соответствующем разделе.

Excel vba работа с датами

На этом шаге мы перечислим функции, используемые при работе с датой и временем.

VBA предоставляет следующие функции времени и даты.

  • Дата: возвращает вариант (дату), содержащий текущую системную дату.

Время: возвращает вариант (дату), содержащий текущее время по системным часам компьютера.

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

Hour, Minute, Second — возврат значений Variant (Integer), содержащих целое число, представляющее часы, минуты и секунды в значении времени. Синтаксис:

  • время — это значение времени или выражение, которое его определяет.

В следующем примере переменная установлена ​​на 16 часов, 35 минут и 17 секунд:

  • data — значение даты или выражение, которое его определяет.

В следующем примере переменной присвоено 17 День, Месяц — Май, Год — 1960:

  • дата — это выражение, представляющее дату;
  • firstdayofweek — указывает первый день недели. Если этот аргумент опущен, предполагается vbSunday (воскресенье). Допустимые значения: vbMonday (понедельник), vbTuesday (вторник), vbWednesday (среда), vbThursday (четверг), vbFriday (пятница) и vbSaturday (суббота).

В следующем примере для переменной DayWeek установлено значение 3, то есть вторник:

DateDiff: возвращает вариант (Long), указывающий количество временных интервалов между двумя датами. Синтаксис:

В следующем примере переменной LivedMonthsWithBirth присваивается 642:

В следующем примере переменной назначается День 3/17/63:

В этом примере переменной Tempo присвоено 16:35:17:

В следующем примере переменной Date назначается дата 17.05.60:

На следующем этапе мы рассмотрим функции выбора.

VBA — функции работы с датой и временем

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

Функции VBA даты и времени

Date () — получить текущее значение даты, установленное в системе.

Time () — вернет время, установленное в системе

Now () — это комбинированная функция, поскольку она получает значение системной даты и времени.

DateAdd (интервал, число, дата) — добавляет указанное количество лет, кварталов, месяцев или секунд к указанной дате (параметр «дата»). На выходе получаем следующее значение: дата + (число * диапазон).

DateDiff (range, date, date2) — получить, например, разницу между заданными датами. В годах, месяцах и т.д. Разница определяется параметром «интервал”.

DatePart (диапазон, дата): получает указанную часть даты, например, только год, месяц или день недели. Результат возврата регулируется параметром «интервал”.

DateSerial (год, месяц, день): эта функция vba принимает три числовых значения, на основе которых возвращается дата.

DateValue (строка) является аналогом предыдущей функции, но мы не передаем здесь числа в качестве параметра. А строковое значение, по которому будет возвращена дата, vba работает с датами.

День: получает значение текущего дня (если параметр «дата» не указан) или для определенной даты.

Год: получает значение текущего года (если параметр «дата» не указан) или для определенной даты.

Месяц: получает значение текущего месяца (если параметр «дата» не указан) или для определенной даты.

Weekday (date) — получает значение текущей недели (если параметр «date» отсутствует) или для определенной даты.

Hour (время) — получает текущее значение часа (если параметр «время» отсутствует) или для определенного времени, даты и времени vba.

Минута: получает текущее значение минут (если параметр «время» отсутствует) или за определенное время.

Секунда (время): получает текущее значение в секундах (если параметр «время» отсутствует) или за указанное время.

Timer () — удобная функция для определения количества времени, необходимого для выполнения заданного блока кода. Сама функция возвращает целое число секунд, прошедших с полуночи.

TimeSerial (часы, минуты, секунды): получает время, указанное тремя параметрами

TimeValue (строка): работает аналогично предыдущей функции, но для получения времени передается не целочисленное значение, а строка.

MonthName (числовое значение) — функция VBA позволяет получить название месяца, в качестве параметра мы указываем номер месяца.

WeekDay (date) — set возвращает название месяца буквами в зависимости от его номера. Возвращаемое значение зависит от языкового стандарта. Если они русские, будет возвращено русское название месяца.

В дополнение к указанным выше функциям даты и времени vba вы можете использовать следующие варианты:

Дата: установка системной даты

Время: установите системное время.

Функции даты и времени vba в указанном выше языке используют параметр «interval», который может принимать следующие значения:

VBA функции форматирование данных

Для форматирования данных в VBA используется функция Format, которая позволяет формировать данные любого встроенного типа по заданному шаблону. Общий синтаксис функции форматирования:

Формат (Выражение, «формат», [первы]й день недели, [первая недел[я года]]) — здесь параметр «выражение» — любое допустимое значение. Формат — необязательный параметр, указывающий формат данных, должен быть заключен в кавычки. Два других параметра также являются необязательными и задают первый день недели и первую неделю года.

Параметр формата может принимать следующие значения:

  • Общее число — это числовое значение без выделения тысяч позиций, например 12150,2003
  • Валюта — формат валюты, присваиваются тысячные и два десятичных знака, например 255,33 рубля.
  • Исправлено: числовое значение без разделения тысяч разрядов и двух десятичных знаков, например 22439.12.
  • Стандарт: числовое значение, умноженное на 100, оставляя два десятичных знака и символ процента, например 55,63%.
  • Научный: числовой формат для научных вычислений, например 5.23E + 03
  • Да / Нет: этот параметр определяет, что функция вернет «Да», если форматированное выражение содержит строку «Нет» или ненулевое значение, и «Нет» в противном случае.
  • True / False — аналогично предыдущему параметру, но для строк «True» и «False”.
  • Вкл / Выкл — для линий типа «Вкл» и «Выкл”.
  • Общая дата: форматирование выражения в соответствии с установленными стандартами даты и времени, например 10.11.02 12:25:50
  • Длинная дата — отображает полный формат даты, в зависимости от настроек в системе, например 10 октября 2013 года, функция даты vba.
  • Средняя дата: формат средней даты, например 10-окт-13.
  • Краткая дата — вывод в кратком формате даты, например 10.10.13.
  • Long Time — вывод в формате времени (часы, минуты, секунды), например 12:20:40.
  • Среднее время: 12-часовой формат времени (часы, минуты), например 05:30.
  • Краткое время: 24-часовой формат времени (часы, минуты), например 17:30

Вопрос/ответ

Функция Date() в Excel VBA возвращает текущую системную дату. Она может быть использована для получения актуальной даты в вашем коде. Например, вы можете присвоить значение текущей даты переменной с помощью оператора Date(). Это удобно для автоматизации задач, связанных с датами.
Функция DateAdd() в VBA позволяет добавлять к дате определенное количество временных интервалов, таких как годы, месяцы, дни, часы и т.д. Это полезно, когда нужно вычислить дату, наступающую через определенный период времени. Например, вы можете добавить 30 дней к текущей дате, чтобы получить дату через месяц.
Функция DateDiff() в VBA используется для вычисления разницы между двумя датами. Она возвращает количество временных интервалов, таких как дни, месяцы или годы, между двумя указанными датами. Это полезно для анализа временных промежутков, например, для расчета возраста или длительности проекта.
Функция DatePart() в VBA возвращает указанную часть даты, такую как год, месяц или день недели. Это позволяет извлекать конкретные компоненты даты для дальнейшего анализа или обработки. Например, вы можете использовать DatePart() для получения номера месяца из полной даты.
Функция DateSerial() в VBA создает значение даты на основе переданных числовых значений для года, месяца и дня. Это полезно, когда нужно создать дату из отдельных компонентов. Например, вы можете создать дату 1 января 2023 года, передав значения 2023, 1 и 1 в функцию.
Функция Timer() в VBA возвращает количество секунд, прошедших с полуночи. Это может быть полезно для измерения времени выполнения кода или для создания таймеров в приложениях. Например, вы можете использовать Timer() для определения времени, затраченного на выполнение определенного блока кода.
Функция MonthName() в VBA возвращает название месяца в текстовом формате на основе его числового значения. Это позволяет преобразовать номер месяца в его текстовое представление. Например, если передать значение 1, функция вернет 'Январь'.

Курсы

5085
5,0
3 отзыва
Курсы Excel для начинающих
  • 3 недели
  • Смешанный
  • Диплом / Сертификат
6 800 ₽
Перейти на сайт
456
1,0
1 отзыв
Microsoft Office: тариф PRO
  • c 12 февраля
  • 0 месяцев
50 300 ₽125 750 ₽
50 300 ₽/мес рассрочка
-60%
Перейти на сайт
458
0,0
0 отзывов
Microsoft Office: тариф Мастер
  • c 12 февраля
  • 0 месяцев
74 900 ₽187 250 ₽
74 900 ₽/мес рассрочка
-60%
Перейти на сайт
1063
5,0
11 отзывов
Excel academy + Power BI для анализа данных
  • 1 месяц
  • Смешанный
  • Диплом / Сертификат
25 000 ₽71 428 ₽
2 083 ₽/мес рассрочка
-65%
Перейти на сайт
1065
5,0
1 отзыв
MS Office Pack: Excel, Word, PowerPoint
  • 3 месяца
  • Смешанный
  • Диплом / Сертификат
35 000 ₽100 000 ₽
2 916 ₽/мес рассрочка
-65%
Перейти на сайт