DateDiff Описание
Возвращает разницу между двумя значениями даты на основе указанного интервала.
Простые примеры DateDiff
Вот простой пример DateDiff:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("гггг", # 1/1/2019 #, # 8/1/2021 #)Конец подписки |
Этот код вернет 2. Это разница по годам (обозначается «гггг») между 2 днями. (2021 - 2022 = 2)
В приведенном выше примере изменение позиций date1 и date2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("гггг", # 8/1/2021 #, # 1/1/2019 #)Конец подписки |
Этот код вернет -2.
Синтаксис DateDiff
В редакторе VBA вы можете ввести «DateDiff (», чтобы увидеть синтаксис функции DateDiff:
Функция DateDiff содержит 5 аргументов:
Интервал: Единица времени (дни, месяцы, годы и т. Д.). Введите как строку. (например, «m» для месяца)
Параметр | Описание |
---|---|
гггг | Год |
q | Четверть |
м | Месяц |
у | День года |
d | День |
ш | Будний день |
ww | Неделя |
час | Час |
п | Минуты |
s | Второй |
Дата1, Дата2: Две даты, которые вы хотите использовать в расчетах.
FirstDayOfWeek: Константа, указывающая первый день недели. Это необязательно. Если не указано иное, предполагается воскресенье.
Постоянный | Ценить | Описание |
---|---|---|
vbUseSystem | 0 | Используйте настройку NLS API. |
vbВоскресенье | 1 | Воскресенье (по умолчанию) |
vbпонедельник | 2 | понедельник |
vbвторник | 3 | вторник |
vbСреда | 4 | среда |
vb Четверг | 5 | четверг |
vbFriday | 6 | Пятница |
vbСуббота | 7 | Суббота |
Первая неделя года: Константа, определяющая первую неделю года. Это необязательно. Если не указано иное, первой неделей считается 1 января.
Постоянный | Ценить | Описание |
---|---|---|
vbUseSystem | 0 | Используйте настройку NLS API. |
vbFirstJan1 | 1 | Начните с недели, на которой приходится 1 января (по умолчанию). |
vbFirstFourDays | 2 | Начните с первой недели, в которой в новом году не менее четырех дней. |
vbFirstFullWeek | 3 | Начните с первой полной недели года. |
Программирование на VBA | Генератор кода действительно работает для вас!
Примеры функции Excel VBA DateDiff
Ссылки на даты
Для начала мы продемонстрируем различные способы ссылки на даты с помощью функции VBA DateDiff.
Каждая из этих функций DateDiff дает одинаковый результат:
123456789 | Подложка DateDiff_ReferenceDates ()MsgBox DateDiff ("м", № 4/1/2019 #, # 8/1/2021 #)MsgBox DateDiff ("m", DateSerial (2019, 4, 1), DateSerial (2021, 8, 1))MsgBox DateDiff ("m", DateValue ("1 апреля 2022 г."), DateValue ("1 августа 2022 г."))Конец подписки |
Или вы можете ссылаться на ячейки, содержащие даты:
12345 | Подложка DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Range ("C2"). Value, Range ("C3"). Value)Конец подписки |
Или создайте переменные даты и укажите ссылку на них:
123456789 | Подложка DateDiff_Variable ()Dim dt1 как дата, dt2 как датаdt1 = # 4/1/2019 #dt2 = # 8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)Конец подписки |
Устали искать примеры кода VBA? Попробуйте AutoMacro!
Использование разных единиц интервала
Кварталы
123 | Подложка DateDiff_Quarter ()MsgBox "количество кварталов:" & DateDiff ("q", # 1/1/2019 #, # 1/1/2021 #)Конец подписки |
Месяцы
123 | Sub DateDiff_Month ()MsgBox "количество месяцев:" & DateDiff ("m", # 1/1/2019 #, # 1/1/2021 #)Конец подписки |
Дни
123 | Sub DateDiff_Day ()MsgBox "количество дней:" & DateDiff ("d", # 1/1/2019 #, # 1/1/2021 #)Конец подписки |
Недели
123 | Sub DateDiff_Week ()MsgBox "количество недель:" & DateDiff ("w", # 1/1/2019 #, # 1/1/2021 #)Конец подписки |
Часы
123456789101112 | Sub DateDiff_Hour ()Dim dt1 как датаDim dt2 как датаDim nDiff As Longdt1 = # 14.08.2019 9:30:00 #dt2 = # 14.08.2019 13:00:00 #nDiff = DateDiff ("h", dt1, dt2)MsgBox "часы:" & nDiffКонец подписки |
Минуты
123 | Sub DateDiff_Minute ()MsgBox "mins:" & DateDiff ("n", # 14.08.2019 9:30:00 #, # 14.08.2019 9:35:00 #)Конец подписки |
Секунды
123 | Подложка DateDiff_Second ()MsgBox "secs:" & DateDiff ("s", # 14.08.2019 9:30:10 #, # 14.08.2019 9:30:22 #)Конец подписки |