Funkce VBA DateDiff

Popis data rozdílu

Vrátí rozdíl mezi dvěma hodnotami data na základě zadaného intervalu.

Jednoduché příklady DateDiff

Zde je jednoduchý příklad DateDiff:

123 Dílčí datum Rozdíl_Rok ()MsgBox DateDiff („rrrr“, #1/1/2019 #, #8/1/2021 #)End Sub

Tento kód vrátí 2. Jedná se o roční rozdíl (označený „rrrr“) mezi 2 dny. (2021 - 2022 = 2)

Ve výše uvedeném příkladu změna pozic date1 a date2.

123 Dílčí datum Rozdíl_Rok ()MsgBox DateDiff („rrrr“, #8/1/2021 #, #1/1/2019 #)End Sub

Tento kód vrátí -2.

Syntaxe DateDiff

V editoru VBA můžete zadat „DateDiff (“ a zobrazit syntaxi funkce DateDiff:

Funkce DateDiff obsahuje 5 argumentů:

Časový úsek: Časová jednotka (dny, měsíce, roky atd.). Zadejte jako řetězec. (např. „m“ za měsíc)

Nastavení Popis
rrrr Rok
q Čtvrťák
m Měsíc
y Den roku
d Den
w Všední den
ww Týden
h Hodina
n Minuta
s Druhý

Datum1, Datum2: Dvě data, která chcete použít ve výpočtu.

FirstDayOfWeek: Konstanta, která určuje první den v týdnu. Toto je volitelné. Pokud není uvedeno, předpokládá se neděle.

Konstantní Hodnota Popis
vbUseSystem 0 Použijte nastavení NLS API.
vb Neděle 1 Neděle (výchozí)
vb Pondělí 2 pondělí
vbÚterý 3 úterý
vb Středa 4 středa
vbČtvrtek 5 Čtvrtek
vb pátek 6 pátek
vbSobota 7 sobota

FirstWeekOfYear: Konstanta, která určuje první týden v roce. Toto je volitelné. Není -li uvedeno, považuje se za první týden týden, ve kterém se vyskytuje 1. leden.

Konstantní Hodnota Popis
vbUseSystem 0 Použijte nastavení NLS API.
vbFirstJan1 1 Začněte týdnem, ve kterém nastane 1. leden (výchozí).
vbFirstFourDays 2 Začněte prvním týdnem, který má v novém roce alespoň čtyři dny.
vbFirstFullWeek 3 Začněte prvním celým týdnem v roce.

Programování VBA | Generátor kódu pracuje pro vás!

Příklady funkce Excel VBA DateDiff

Referenční data

Na začátek předvedeme různé způsoby odkazování na data pomocí funkce VBA DateDiff.

Každá z těchto funkcí DateDiff produkuje stejný výsledek:

123456789 Dílčí datumDiff_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. dubna 2022"), DateValue ("1. srpna 2022"))End Sub

Nebo můžete odkazovat na buňky obsahující data:

12345 Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Rozsah ("C2"). Hodnota, Rozsah ("C3"). Hodnota)End Sub

Nebo vytvořte a odkazujte na proměnné data:

123456789 Dílčí datumDiff_Variable ()Dim dt1 As Date, dt2 As Datedt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)End Sub

Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!

Použití různých jednotek intervalu

Čtvrtletí

123 Sub DateDiff_Quarter ()MsgBox "počet čtvrtletí:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)End Sub

Měsíce

123 Sub DateDiff_Month ()MsgBox "počet měsíců:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)End Sub

Dny

123 Sub DateDiff_Day ()MsgBox "počet dní:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)End Sub

Týdny

123 Sub DateDiff_Week ()MsgBox "počet týdnů:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)End Sub

Hodiny

123456789101112 Sub DateDiff_Hour ()Dim dt1 jako datumDim dt2 jako datumDim nDiff As Longdt1 = #8/14/2019 9:30:00 AM #dt2 = #8/14/2019 13:00:00 PM #nDiff = DateDiff ("h", dt1, dt2)MsgBox "hodiny:" & nDiffEnd Sub

Minut

123 Sub DateDiff_Minute ()MsgBox "min:" & DateDiff ("n", #8/14/2019 9:30:00 AM #, #8/14/2019 9:35:00 AM #)End Sub

Sekundy

123 Sub DateDiff_Second ()MsgBox "s:" & DateDiff ("s", #8/14/2019 9:30:10 AM #, #8/14/2019 9:30:22 AM #)End Sub
wave wave wave wave wave