DateDiff Beskrivning
Returnerar skillnaden mellan två datumvärden, baserat på det angivna intervallet.
Enkla DateDiff -exempel
Här är ett enkelt DateDiff -exempel:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #1/1/2019 #, #8/1/2021 #)Avsluta Sub |
Denna kod kommer att returnera 2. Detta är skillnaden mot år (indikerad med ”åååå”) mellan 2 dagar. (2021 - 2022 = 2)
I exemplet ovan, ändra positionerna för datum1 och datum2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("åååå", #8/1/2021 #, #1/1/2019 #)Avsluta Sub |
Denna kod returnerar -2.
DateDiff Syntax
I VBA Editor kan du skriva “DateDiff (” för att se syntaxen för DateDiff -funktionen:
DateDiff -funktionen innehåller fem argument:
Intervall: Tidenhet (dagar, månader, år, etc.). Ange som sträng. (ex. ”m” för månad)
Miljö | Beskrivning |
---|---|
åååå | År |
q | Fjärdedel |
m | Månad |
y | Årets dag |
d | Dag |
w | Veckodag |
ww | Vecka |
h | Timme |
n | Minut |
s | Andra |
Datum1, datum2: Två datum som du vill använda i beräkningen.
FirstDayOfWeek: En konstant som anger den första dagen i veckan. Detta är valfritt. Om det inte anges antas söndag.
Konstant | Värde | Beskrivning |
---|---|---|
vbUseSystem | 0 | Använd inställningen för NLS API. |
vbSöndag | 1 | Söndag (standard) |
vbMåndag | 2 | Måndag |
vbTisdag | 3 | Tisdag |
vb onsdag | 4 | Onsdag |
vbTorsdag | 5 | Torsdag |
vbFredag | 6 | fredag |
vbLördag | 7 | Lördag |
FirstWeekOfYear: En konstant som anger årets första vecka. Detta är valfritt. Om den inte anges antas den första veckan vara den vecka då den 1 januari inträffar.
Konstant | Värde | Beskrivning |
---|---|---|
vbUseSystem | 0 | Använd inställningen för NLS API. |
vbFirstJan1 | 1 | Börja med veckan där den 1 januari inträffar (standard). |
vbFirstFourDays | 2 | Börja med den första veckan som har minst fyra dagar under det nya året. |
vbFirstFullWeek | 3 | Börja med årets första hela vecka. |
VBA -programmering | Kodgenerator fungerar för dig!
Exempel på Excel VBA DateDiff -funktion
Referensdatum
Till att börja med kommer vi att visa olika sätt att referera till datum med hjälp av VBA DateDiff -funktionen.
Var och en av dessa DateDiff -funktioner ger samma 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 augusti 2022"))Avsluta Sub |
Eller så kan du referera till celler som innehåller datum:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", intervall ("C2"). Värde, intervall ("C3"). Värde)Avsluta Sub |
Eller skapa och referera datumvariabler:
123456789 | Sub DateDiff_Variable ()Dim dt1 As Date, dt2 As Datedt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)Avsluta Sub |
Trött på att söka efter exempel på VBA -kod? Prova AutoMacro!
Använda olika intervallenheter
Kvartal
123 | Sub DateDiff_Quarter ()MsgBox "antalet kvartal:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)Avsluta Sub |
Månader
123 | Sub DateDiff_Month ()MsgBox "antalet månader:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)Avsluta Sub |
Dagar
123 | Sub DateDiff_Day ()MsgBox "antalet dagar:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)Avsluta Sub |
Veckor
123 | Sub DateDiff_Week ()MsgBox "antalet veckor:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)Avsluta Sub |
Timmar
123456789101112 | Sub DateDiff_Hour ()Dim dt1 som datumDim dt2 som 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 "timmar:" & nDiffAvsluta Sub |
Minuter
123 | Sub DateDiff_Minute ()MsgBox "min:" & DateDiff ("n", #8/14/2019 09:30:00 #, #8/14/2019 09:35:00 AM #)Avsluta Sub |
Sekunder
123 | Sub DateDiff_Second ()MsgBox "sek:" & DateDiff ("s", #8/14/2019 09:30:10 #, #8/14/2019 9:30:22 AM #)Avsluta Sub |