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 |