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 |