DateAdd Beskrivelse
VBA DateAdd -funktionen giver dig mulighed for at tilføje (eller trække) dage, måneder, år, timer, kvartaler osv. 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 #)Afslut Sub |
Denne kode tilføjer 20 dage (angivet med “d”) til datoen 4/1/2021:
I stedet kan vi ændre intervallargumentet fra “d” til “m” for at tilføje 20 måneder til datoen 4/1/2021:
123 | Sub DateAdd_Month ()MsgBox DateAdd ("m", 20, #4/1/2021 #)Afslut Sub |
I stedet for at vise datoen i en meddelelsesboks, kan vi tildele den til en variabel:
123456 | Sub DateAdd_Day2 ()Dim dt som datodt = DateAdd ("d", 20, #4/1/2021 #)MsgBox dtAfslut Sub |
DateAdd Syntax
I VBA Editor kan du skrive "DateAdd (" for at se syntaksen for DateAdd -funktionen:
DateAdd -funktionen indeholder 3 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 |
Nummer: Numerisk værdi, der repræsenterer antallet af tidsenheder, der skal tilføjes. (f.eks. 20 for at tilføje 20 enheder)
Dato: Oprindelig dato. Se næste afsnit.
VBA -programmering | Kodegenerator virker for dig!
Eksempler på Excel VBA DateAdd -funktion
Henvisningsdatoer
For at starte vil vi demonstrere forskellige måder at henvise til datoer ved hjælp af VBA DateAdd -funktionen.
Hver af disse DateAdd -funktioner giver det 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"))Afslut Sub |
Eller du kan referere til en celle, der indeholder en dato:
12345 | Sub DateAdd_ReferenceDates_Cell ()MsgBox DateAdd ("m", 2, område ("C2"). Værdi)Afslut Sub |
Eller opret og referer til en datovariabel:
12345678 | Sub DateAdd_Variable ()Dim dt As Datedt = #4/1/2021 #MsgBox DateAdd ("m", 2, dt)Afslut Sub |
Tilføj eller træk datoer
Vi har allerede vist dig, hvordan du tilføjer til en dato:
123456 | Sub DateAdd_Day2 ()Dim dt som datodt = DateAdd ("d", 20, #4/1/2021 #)MsgBox dtAfslut Sub |
Du kan trække fra datoer ved at bruge et negativt tal (f.eks. -20 i stedet for 20):
123456 | Sub DateAdd_Day ()Dim dt som datodt = DateAdd ("d", -20, #4/1/2021 #)MsgBox dtAfslut Sub |
Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!
Tilføjelse af forskellige tidsenheder
Flere år
123 | Sub DateAdd_Years ()MsgBox DateAdd ("åååå", 4, #4/1/2021 #)Afslut Sub |
Kvarter
123 | Sub DateAdd_Quarters ()MsgBox DateAdd ("q", 2, #4/1/2021 #)Afslut Sub |
Måned
123 | Sub DateAdd_Months ()MsgBox DateAdd ("m", 2, #4/1/2021 #)Afslut Sub |
Årets dag
123 | Sub DateAdd_DaysofYear ()MsgBox DateAdd ("y", 2, #4/1/2021 #)Afslut Sub |
Dag
123 | Sub DateAdd_Days3 ()MsgBox DateAdd ("d", 2, #4/1/2021 #)Afslut Sub |
Ugedag
123 | Sub DateAdd_Weekdays ()MsgBox DateAdd ("w", 2, #4/1/2021 #)Afslut Sub |
Uge
123 | Sub DateAdd_Weeks ()MsgBox DateAdd ("ww", 2, #4/1/2021 #)Afslut Sub |
VBA -programmering | Kodegenerator virker for dig!
Føj til i dag
Disse eksempler tilføjer tidsenheder til i dag ved hjælp af datofunktionen.
123456789 | Sub DateAdd_Year_Test ()Dim dtI dag som datoDim dtLater As DatedtToday = DatodtLater = DateAdd ("åååå", 1, dtToday)MsgBox "Et år senere er" & dtLaterAfslut Sub |
123 | Sub DateAdd_Quarter_Test ()MsgBox "2 kvarter senere er" & DateAdd ("q", 2, Date)Afslut Sub |
Tilføjelse og fradrag af tid
DateAdd -funktionen fungerer også med Times. Her er et par eksempler på at tilføje (eller trække) tid til et tidspunkt:
Time
Dette eksempel tilføjer 2 timer til et tidspunkt:
123 | Sub DateAdd_Hour ()MsgBox DateAdd ("h", 2, #4/1/2021 6: 00: 00 #)Afslut Sub |
Minut
Dette eksempel trækker 120 minutter fra den aktuelle tid:
123 | Sub DateAdd_Minute_Subtract ()MsgBox DateAdd ("n", -120, nu)Afslut Sub |
Sekund
123 | Sub DateAdd_Second ()MsgBox DateAdd ("s", 2, #4/1/2021 6: 00: 00 #)Afslut Sub |
Formatering af datoer
Når datoer (eller tidspunkter) vises i Excel, UserForms eller Beskedbokse, skal du angive, hvordan datoerne skal vises ved hjælp af formateringsfunktionen. Vi har medtaget et par eksempler herunder:
123456789101112131415161718 | Sub FormattingDatesTimes ()'Returnerer aktuel dato og klokkeslætdt = Nu ()'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 9:10Område ("B5") = Format (dt, "m.d. åå t: mm AM/PM")Afslut Sub |