VBA DateAdd -funktion

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

wave wave wave wave wave