VBA DateAdd -funksjon

Dato Legg til beskrivelse

VBA DateAdd -funksjonen lar deg legge til (eller trekke fra) dager, måneder, år, timer, kvartaler, etc. til datoer eller tider.

Simple DateAdd -eksempler

Her er et enkelt eksempel på DateAdd:

123 Sub DateAdd_Day ()MsgBox DateAdd ("d", 20, #4/1/2021 #)Slutt Sub

Denne koden vil legge til 20 dager (angitt med “d”) til datoen 04.04.2021:

I stedet kan vi endre intervallargumentet fra "d" til "m" for å legge til 20 måneder til datoen 4/1/2021:

123 Sub DateAdd_Month ()MsgBox DateAdd ("m", 20, #4/1/2021 #)Slutt Sub

I stedet for å vise datoen i en meldingsboks, kan vi tilordne den til en variabel:

123456 Sub DateAdd_Day2 ()Dim dt som datodt = DateAdd ("d", 20, #4/1/2021 #)MsgBox dtSlutt Sub

DateAdd Syntax

I VBA Editor kan du skrive “DateAdd (” for å se syntaksen for DateAdd -funksjonen:

DateAdd -funksjonen inneholder 3 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

Nummer: Numerisk verdi som representerer antall tidsenheter som skal legges til. (eks. 20 for å legge til 20 enheter)

Dato: Første dato. Se neste avsnitt.

VBA -programmering | Kodegenerator fungerer for deg!

Eksempler på Excel VBA DateAdd -funksjon

Henvisningsdatoer

For å starte vil vi demonstrere forskjellige måter å referere til datoer på med VBA DateAdd -funksjonen.

Hver av disse DateAdd -funksjonene gir samme resultat:

123456789 Sub DateAdd_ReferenceDates ()MsgBox DateAdd ("m", 2, #4/1/2021 #)MsgBox DateAdd ("m", 2, DateSerial (2021, 4, 1))MsgBox DateAdd ("m", 2, DateValue ("1. april 2022"))Slutt Sub

Eller du kan referere til en celle som inneholder en dato:

12345 Sub DateAdd_ReferenceDates_Cell ()MsgBox DateAdd ("m", 2, område ("C2"). Verdi)Slutt Sub

Eller opprett og referer til en datavariabel:

12345678 Sub DateAdd_Variable ()Dim dt As Datedt = #4/1/2021 #MsgBox DateAdd ("m", 2, dt)Slutt Sub

Legg til eller trekk fra datoer

Vi har allerede vist deg hvordan du legger til en dato:

123456 Sub DateAdd_Day2 ()Dim dt som datodt = DateAdd ("d", 20, #4/1/2021 #)MsgBox dtSlutt Sub

Du kan trekke fra datoer ved å bruke et negativt tall (eks. -20 i stedet for 20):

123456 Sub DateAdd_Day ()Dim dt som datodt = DateAdd ("d", -20, #4/1/2021 #)MsgBox dtSlutt Sub

Lei av å søke etter eksempler på VBA -kode? Prøv AutoMacro!

Legge til forskjellige tidsenheter

År

123 Sub DateAdd_Years ()MsgBox DateAdd ("åååå", 4, #4/1/2021 #)Slutt Sub

Fjerdedel

123 Sub DateAdd_Quarters ()MsgBox DateAdd ("q", 2, #4/1/2021 #)Slutt Sub

Måned

123 Sub DateAdd_Months ()MsgBox DateAdd ("m", 2, #4/1/2021 #)Slutt Sub

Årets dag

123 Sub DateAdd_DaysofYear ()MsgBox DateAdd ("y", 2, #4/1/2021 #)Slutt Sub

Dag

123 Sub DateAdd_Days3 ()MsgBox DateAdd ("d", 2, #4/1/2021 #)Slutt Sub

Ukedag

123 Sub DateAdd_Weekdays ()MsgBox DateAdd ("w", 2, #4/1/2021 #)Slutt Sub

Uke

123 Sub DateAdd_Weeks ()MsgBox DateAdd ("ww", 2, #4/1/2021 #)Slutt Sub

VBA -programmering | Kodegenerator fungerer for deg!

Legg til i dag

Disse eksemplene vil legge til tidsenheter i dag ved hjelp av datofunksjonen.

123456789 Sub DateAdd_Year_Test ()Dim dtToday As DateDim dtLater As DatedtToday = DatodtLater = DateAdd ("åååå", 1, dtToday)MsgBox "Et år senere er" & dtLaterSlutt Sub
123 Sub DateAdd_Quarter_Test ()MsgBox "2 kvartaler senere er" & DateAdd ("q", 2, Date)Slutt Sub

Legge til og trekke fra tid

DateAdd -funksjonen fungerer også med Times. Her er noen eksempler på å legge til (eller trekke fra) tid til en gang:

Time

Dette eksemplet vil legge til 2 timer om gangen:

123 Sub DateAdd_Hour ()MsgBox DateAdd ("h", 2, #4/1/2021 6: 00: 00 #)Slutt Sub

Minutt

Dette eksemplet trekker 120 minutter fra gjeldende tid:

123 Sub DateAdd_Minute_Subtract ()MsgBox DateAdd ("n", -120, nå)Slutt Sub

Sekund

123 Sub DateAdd_Second ()MsgBox DateAdd ("s", 2, #4/1/2021 6: 00: 00 #)Slutt Sub

Formatering av datoer

Når datoer (eller klokkeslett) vises i Excel, UserForms eller Meldingsbokser, bør du angi hvordan datoene skal vises ved å bruke formatfunksjonen. Vi har tatt med noen eksempler nedenfor:

123456789101112131415161718 Sub FormattingDatesTimes ()'Returnerer gjeldende dato og klokkeslettdt = Nå ()'eks. 07.02.2021Område ("B2") = Format (dt, "mm/dd/åååå")'eks. 2. juli 2022Område ("B3") = Format (dt, "mmmm d, åååå")'eks. 2. juli 2022 09:10Område ("B4") = Format (dt, "mm/dd/åååå hh: mm")'eks. 7.2.21 09:10Område ("B5") = Format (dt, "m.d. åå t: mm AM/PM")Slutt Sub

wave wave wave wave wave