DateDiff Beskrivelse
Returnerer differansen mellom to datoverdier, basert på det angitte intervallet.
Enkle DateDiff -eksempler
Her er et enkelt eksempel på DateDiff:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #1/1/2019 #, #8/1/2021 #)Slutt Sub |
Denne koden returnerer 2. Dette er forskjellen på år (angitt med “åååå”) mellom 2 dager. (2021 - 2022 = 2)
I eksemplet ovenfor endrer du posisjonene til dato1 og dato2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #8/1/2021 #, #1/1/2019 #)Slutt Sub |
Denne koden returnerer -2.
DateDiff -syntaks
I VBA Editor kan du skrive “DateDiff (” for å se syntaksen for DateDiff -funksjonen:
DateDiff -funksjonen inneholder 5 argumenter:
Intervall: Tidsenhet (dager, måneder, år, etc.). Skriv inn som streng. (eks. "m" for måned)
Omgivelser | Beskrivelse |
---|---|
åååå | År |
q | Fjerdedel |
m | Måned |
y | Årets dag |
d | Dag |
w | Ukedag |
ww | Uke |
h | Time |
n | Minutt |
s | Sekund |
Dato1, dato2: To datoer du vil bruke i beregningen.
FirstDayOfWeek: En konstant som angir ukens første dag. Dette er valgfritt. Hvis ikke spesifisert, antas søndag.
Konstant | Verdi | Beskrivelse |
---|---|---|
vbUseSystem | 0 | Bruk NLS API -innstillingen. |
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 som angir årets første uke. Dette er valgfritt. Hvis ikke spesifisert, antas den første uken å være uken der 1. januar inntreffer.
Konstant | Verdi | Beskrivelse |
---|---|---|
vbUseSystem | 0 | Bruk NLS API -innstillingen. |
vbFirstJan1 | 1 | Start med uken der 1. januar skjer (standard). |
vbFirstFourDays | 2 | Start med den første uken som har minst fire dager i det nye året. |
vbFirstFullWeek | 3 | Start med årets første hele uke. |
VBA -programmering | Kodegenerator fungerer for deg!
Eksempler på Excel VBA DateDiff -funksjon
Henvisningsdatoer
For å starte, vil vi demonstrere forskjellige måter å referere til datoer ved å bruke VBA DateDiff -funksjonen.
Hver av disse DateDiff -funksjonene gir 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"))Slutt Sub |
Eller du kan referere til celler som inneholder datoer:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", område ("C2"). Verdi, område ("C3"). Verdi)Slutt Sub |
Eller opprett og referer til datovariabler:
123456789 | Sub DateDiff_Variable ()Dim dt1 As Date, dt2 As Datedt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)Slutt Sub |
Lei av å søke etter eksempler på VBA -kode? Prøv AutoMacro!
Bruke forskjellige intervaller
Kvartaler
123 | Sub DateDiff_Quarter ()MsgBox "antall kvartaler:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)Slutt Sub |
Måneder
123 | Sub DateDiff_Month ()MsgBox "antall måneder:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)Slutt Sub |
Dager
123 | Sub DateDiff_Day ()MsgBox "antall dager:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)Slutt Sub |
Uker
123 | Sub DateDiff_Week ()MsgBox "antall uker:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)Slutt Sub |
Timer
123456789101112 | Sub DateDiff_Hour ()Dim dt1 As DateDim dt2 As DateDim 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:" & nDiffSlutt Sub |
Minutter
123 | Sub DateDiff_Minute ()MsgBox "minutter:" & DateDiff ("n", #8/14/2019 09:30:00 #, #8/14/2019 09:35:00 AM #)Slutt Sub |
Sekunder
123 | Sub DateDiff_Second ()MsgBox "sek:" & DateDiff ("s", #8/14/2019 09:30:10 #, #8/14/2019 09:30:22 AM #)Slutt Sub |