Описание на 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“ за месец)
Настройка | Описание |
---|---|
yyyy | Година |
q | Квартал |
м | Месец |
y | Ден на годината |
д | Ден |
w | Делничен ден |
ww | Седмица |
з | Час |
н | Минута |
с | Второ |
Дата1, Дата2: Две дати, които искате да използвате при изчислението.
FirstDayOfWeek: Константа, която определя първия ден от седмицата. Това е по избор. Ако не е посочено, се приема неделя.
Постоянен | Стойност | Описание |
---|---|---|
vbUseSystem | 0 | Използвайте настройката на NLS API. |
vbнеделя | 1 | Неделя (по подразбиране) |
vbПонеделник | 2 | Понеделник |
vbВторник | 3 | Вторник |
vbСряда | 4 | Сряда |
vbчетвъртък | 5 | Четвъртък |
vbПетък | 6 | Петък |
vbСъбота | 7 | Събота |
Първа седмицаГодина: Константа, която определя първата седмица от годината. Това е по избор. Ако не е посочено, първата седмица се приема за седмицата, през която настъпва 1 януари.
Постоянен | Стойност | Описание |
---|---|---|
vbUseSystem | 0 | Използвайте настройката на NLS API. |
vbFirstJan1 | 1 | Започнете със седмица, през която настъпва 1 януари (по подразбиране). |
vbFirstFourDays | 2 | Започнете с първата седмица, която има поне четири дни през новата година. |
vbFirstFullWeek | 3 | Започнете с първата пълна седмица в годината. |
VBA програмиране | Code Generator работи за вас!
Примери за функция 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 AM #dt2 = #8/14/2019 13:00:00 PM #nDiff = DateDiff ("h", dt1, dt2)MsgBox "часове:" & nDiffEnd Sub |
Минути
123 | Sub DateDiff_Minute ()MsgBox "mins:" & DateDiff ("n", #8/14/2019 9:30:00 AM #, #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 |