Функция VBA DateDiff

Описание на 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

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave