DateDiff Beskrivelse
Returnerer forskellen mellem to datoværdier baseret på det angivne interval.
Simple DateDiff -eksempler
Her er et enkelt eksempel på DateDiff:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #1/1/2019 #, #8/1/2021 #)Afslut Sub |
Denne kode returnerer 2. Dette er forskellen på år (angivet med "åååå") mellem 2 dage. (2021 - 2022 = 2)
I ovenstående eksempel ændres positionerne for dato1 og dato2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #8/1/2021 #, #1/1/2019 #)Afslut Sub |
Denne kode returnerer -2.
DateDiff -syntaks
I VBA Editor kan du skrive “DateDiff (” for at se syntaksen for DateDiff -funktionen:
DateDiff -funktionen indeholder 5 argumenter:
Interval: Tidsenhed (dage, måneder, år osv.). Indtast som streng. (f.eks. "m" for en måned)
Indstilling | Beskrivelse |
---|---|
åååå | År |
q | Kvarter |
m | Måned |
y | Årets dag |
d | Dag |
w | Ugedag |
ww | Uge |
h | Time |
n | Minut |
s | Sekund |
Dato1, dato2: To datoer, du vil bruge i beregningen.
FirstDayOfWeek: En konstant, der angiver den første dag i ugen. Dette er valgfrit. Hvis det ikke er angivet, antages søndag.
Konstant | Værdi | Beskrivelse |
---|---|---|
vbUseSystem | 0 | Brug NLS API -indstillingen. |
vbSøndag | 1 | Søndag (standard) |
vbMandag | 2 | Mandag |
vbTirsdag | 3 | tirsdag |
vb onsdag | 4 | onsdag |
vbTorsdag | 5 | torsdag |
vbFredag | 6 | Fredag |
vbLørdag | 7 | lørdag |
FirstWeekOfYear: En konstant, der angiver årets første uge. Dette er valgfrit. Hvis den ikke er angivet, antages den første uge at være den uge, hvor den 1. januar finder sted.
Konstant | Værdi | Beskrivelse |
---|---|---|
vbUseSystem | 0 | Brug NLS API -indstillingen. |
vbFirstJan1 | 1 | Start med den uge, hvor den 1. januar finder sted (standard). |
vbFirstFourDays | 2 | Start med den første uge, der har mindst fire dage i det nye år. |
vbFirstFullWeek | 3 | Start med årets første hele uge. |
VBA -programmering | Kodegenerator virker for dig!
Eksempler på Excel VBA DateDiff -funktion
Henvisningsdatoer
For at starte vil vi demonstrere forskellige måder at henvise til datoer ved hjælp af VBA DateDiff -funktionen.
Hver af disse DateDiff -funktioner giver det samme resultat:
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. april 2022"), DateValue ("1. august 2022"))Afslut Sub |
Eller du kan referere til celler, der indeholder datoer:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Range ("C2"). Værdi, Range ("C3"). Værdi)Afslut Sub |
Eller opret og referencer datovariabler:
123456789 | Sub DateDiff_Variable ()Dim dt1 som dato, dt2 som datodt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)Afslut Sub |
Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!
Brug af forskellige intervaller
Kvartaler
123 | Sub DateDiff_Quarter ()MsgBox "antallet af kvartaler:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)Afslut Sub |
Måneder
123 | Sub DateDiff_Month ()MsgBox "antallet af måneder:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)Afslut Sub |
Dage
123 | Sub DateDiff_Day ()MsgBox "antallet af dage:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)Afslut Sub |
Uger
123 | Sub DateDiff_Week ()MsgBox "antallet af uger:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)Afslut Sub |
Timer
123456789101112 | Sub DateDiff_Hour ()Dim dt1 som datoDim dt2 som datoDim nDiff As Longdt1 = #8/14/2019 9:30:00 AM #dt2 = #8/14/2019 13:00:00 PM #nDiff = DateDiff ("h", dt1, dt2)MsgBox "timer:" & nDiffAfslut Sub |
Referat
123 | Sub DateDiff_Minute ()MsgBox "minutter:" & DateDiff ("n", #8/14/2019 9:30:00 AM #, #8/14/2019 9:35:00 AM #)Afslut Sub |
Sekunder
123 | Sub DateDiff_Second ()MsgBox "sek:" & DateDiff ("s", #8/14/2019 9:30:10 AM #, #8/14/2019 9:30:22 AM #)Afslut Sub |