Опис DateDiff
Повертає різницю між двома значеннями дати на основі зазначеного інтервалу.
Прості приклади DateDiff
Ось простий приклад DateDiff:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("рррр", #1/1/2019 #, #8/1/2021 #)End Sub |
Цей код поверне 2. Це різниця між роками (позначена "рррр") між 2 днями. (2021-2022 = 2)
У наведеному вище прикладі зміна позицій date1 і date2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("рррр", #8/1/2021 #, #1/1/2019 #)End Sub |
Цей код поверне -2.
Синтаксис DateDiff
У редакторі VBA можна ввести “DateDiff (”, щоб побачити синтаксис функції DateDiff:
Функція DateDiff містить 5 аргументів:
Інтервал: Одиниця часу (дні, місяці, роки тощо). Введіть як рядок. (наприклад, "m" за місяць)
Налаштування | Опис |
---|---|
рррр | Рік |
q | Квартал |
м | Місяць |
y | День року |
d | День |
w | Будній день |
ww | Тиждень |
h | Година |
n | Хвилина |
s | По -друге |
Дата1, дата2: Дві дати, які потрібно використати для обчислення.
Перший день тижня: Константа, яка визначає перший день тижня. Це необов’язково. Якщо не вказано, передбачається неділя.
Постійна | Цінність | Опис |
---|---|---|
vbUseSystem | 0 | Використовуйте налаштування API NLS. |
vbНеділя | 1 | Неділя (за замовчуванням) |
vbпонеділок | 2 | Понеділок |
vbВторник | 3 | Вівторок |
vbСреда | 4 | Середа |
vbЧетвер | 5 | Четвер |
vbП'ятниця | 6 | П'ятниця |
vbСубота | 7 | Субота |
Перша тиждень року: Константа, яка визначає перший тиждень року. Це необов’язково. Якщо не вказано, першим тижнем вважається тиждень, у який настає 1 січня.
Постійна | Цінність | Опис |
---|---|---|
vbUseSystem | 0 | Використовуйте налаштування API NLS. |
vbFirstJan1 | 1 | Почніть з тижня, коли настає 1 січня (за замовчуванням). |
vbFirstFourDays | 2 | Почніть з першого тижня, який має принаймні чотири дні у новому році. |
vbFirstFullWeek | 3 | Почніть з першого повного тижня в році. |
Програмування VBA | Генератор коду працює для вас!
Приклади функції Excel VBA DateDiff
Посилання на дати
Для початку ми продемонструємо різні способи посилання на дати за допомогою функції VBA DateDiff.
Кожна з цих функцій DateDiff дає однаковий результат:
123456789 | Sub DateDiff_ReferenceDates ()MsgBox DateDiff ("m", #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"))End Sub |
Або ви можете посилатися на клітинки, що містять дати:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Діапазон ("C2"). Значення, Діапазон ("C3"). Значення)End Sub |
Або створіть змінні дати та посилання:
123456789 | Sub DateDiff_Variable ()Dim dt1 як дата, dt2 як датаdt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)End Sub |
Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!
Використання різних одиниць інтервалу
Чверті
123 | Sub DateDiff_Quarter ()MsgBox "кількість кварталів:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)End Sub |
Місяці
123 | Sub DateDiff_Month ()MsgBox "кількість місяців:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)End Sub |
Днів
123 | Sub DateDiff_Day ()MsgBox "кількість днів:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)End Sub |
Тижнів
123 | Sub DateDiff_Week ()MsgBox "кількість тижнів:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)End Sub |
Години роботи
123456789101112 | Sub DateDiff_Hour ()Dim dt1 як датаDim dt2 як датаDim nDiff As Longdt1 = #8/14/2019 9:30:00 ранку #dt2 = #14.08.2019 13:00:00 #nDiff = DateDiff ("h", dt1, dt2)MsgBox "години:" & nDiffEnd Sub |
Хвилини
123 | Sub DateDiff_Minute ()MsgBox "mins:" & DateDiff ("n", #8/14/2019 9:30:00 #, #8/14/2019 9:35:00 AM)End Sub |
Секунди
123 | Sub DateDiff_Second ()MsgBox "secs:" & DateDiff ("s", #8/14/2019 9:30:10 AM #, #8/14/2019 9:30:22 AM #)End Sub |