Sådan bruges VBA DateAdd-funktionen i Excel

  • Del Dette
Hugh West

VBA DateAdd-funktion er under kategorien dato og tid i Excel's VBA-funktioner Ved at bruge denne funktion kan vi tilføje eller trække år, måneder, dage, kvartaler og endda forskellige tidsintervaller som timer, minutter og sekunder fra en given dato. At håndtere dato og tid i daglige beregninger for at generere rapporter eller foretage sammenligninger er et almindeligt scenarie. I Excel gør brugen af VBA-dato- og tidsfunktioner som DateAdd-funktionen komplekse eller tidskrævende beregningermere effektiv og hurtigere.

Download arbejdsbogen til øvelser

Download denne arbejdsbog til træning, så du kan øve dig, mens du læser denne artikel.

VBA DateAdd-funktion.xlsm

Introduktion til Excel VBA DateAdd-funktionen

Resultat:

en dato, hvortil et bestemt tidsinterval lægges eller trækkes fra

Syntaks:

DatoAdd (interval, tal, dato)

Argumenter:

Argument Krævet/valgfrit Beskrivelse
interval Påkrævet A streng udtryk.

Det tidsinterval i forskellige indstillinger, som vi ønsker at tilføje nummer Påkrævet A numerisk udtryk .

nummer intervaller der skal tilføjes eller trækkes fra

Kan være positiv - for fremtid datoer

Kan være negativ - for tidligere datoer dato Påkrævet A dato udtryk

dato til hvilken den intervaller er tilføjet

Indstillinger:

DateAdd-funktion har disse intervalindstillinger:

Indstilling Beskrivelse
yyyy År
q Kvartal
m Måned
y År af dagen
d Dag
w Hverdag
ww Uge
h Timer
n Minut
s Anden

Eksempler på Excel VBA DateAdd-funktionen

Formeludtryk i Excel DateAdd-funktionen

Der er forskellige måder at placere den dato argument i den DateAdd-funktionen. De resulterer alle i det samme resultat.

Indsæt følgende kode i den Visual Basic-editor:

(Sådan kører du kode i Visual Basic-editoren)

 Sub add_year() Range("D3") = DateAdd("yyyy", 2, #1/1/2022#) Range("D4") = DateAdd("yyyy", 2, DateSerial(2022, 1, 1, 1)) Range("D5") = DateAdd("yyyy", 2, DateValue("Jan 1, 2022")) Range("D6") = DateAdd("yyyy", 2, Range("B6")) End Sub 

Forklaring :

DateAdd("yyyy",2, en af følgende metoder)

Vi kan bruge forskellige metoder til at indsætte dataargumentet:

  • #1/1/2011#
  • DateSerial( år , måned, dag)
  • DatoVærdi( dato )
  • Område ("cell") - Dato gemt i en celle
  • Lagring af datoen i en variabel

I celler D3, D4, D5, D6, D7 vi sætter de ovennævnte metoder som dato argumentet i den DatoAdd funktion sekventielt og fik den samme resultat.

Vi har tilføjet 2 mere år til 1/1/2022 som resulterede i 1/1/2024.

Her,

yyyy repræsenterer år som interval

2 repræsenterer antallet af intervaller som nummer .

Hjælp: Sådan kører du kode i Visual Basic-editoren

Følg trinene:

  • Fra den Excel-bånd , gå til Fanen Udvikler og vælg Visual Basic Tab.

  • I det nye vindue skal du klikke på Indsæt og vælg Modul.

  • Skriv din kode i editoren og tryk på F5 til køre.

Tilføjelse af forskellige intervalindstillinger ved hjælp af funktionen DateAdd i Excel

1. Tilføj år

Kode:

 Sub DateAdd_Years() Range("F5") = DateAdd("yyyy", 2, Range("D5")) End Sub 

Resultat: 2 år tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 1/1/2024 (mm/dd/åååå).

Læs mere: Sådan bruges År Funktion i Excel VBA

2. Tilføj kvartal

Kode:

 Sub DateAdd_Quarters() Række ("F5") = DateAdd("q", 2, Range("D5")) End Sub 

Resultat: 2 kvartal = 6 måneder tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 7/1/2022 (mm/dd/åååå).

3. Tilføj måned

Kode:

 Sub DateAdd_Months() Range("F5") = DateAdd("m", 2, Range("D5"))) End Sub 

Resultat: 2 måneder tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 3/1/2022 (mm/dd/åååå).

Læs mere: Sådan bruger du Excel VBA MONTH-funktionen

4. Tilføj dag i året

Kode:

 Sub DateAdd_DayOfYear() Range("F5") = DateAdd("y", 2, Range("D5")) End Sub 

Resultat : 2 Årets dag tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 1/3/2022 (mm/dd/åååå).

Læs mere: Sådan bruges Day-funktionen i Excel VBA

5. Tilføj dag

Kode:

 Sub DateAdd_Day() Range("F5") = DateAdd("d", 2, Range("D5"))) End Sub 

Resultat : 2 dage tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 1/3/2022 (mm/dd/åååå).

Lignende læsninger

  • Excel VBA til at finde ugenummer (6 hurtige eksempler)
  • Sådan bruger du VBA DatePart-funktionen i Excel (7 eksempler)
  • Brug VBA DateSerial-funktionen i Excel (5 nemme programmer)
  • Sådan konverteres dato fra streng ved hjælp af VBA (7 måder)

6. Tilføj ugedag

Kode:

 Sub DateAdd_WeekDay() Range("F5") = DateAdd("w", 10, Range("D5")) End Sub 

Resultat: 10 WeekDays tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 1/11/2022 (mm/dd/åååå).

7. Tilføj uge

Kode:

 Sub DateAdd_Weeks() Range("F5") = DateAdd("ww", 2, Range("D5")) End Sub 

Resultat: 2 uger = 14 dage tilføjet til 1/1/2022 (mm/dd/åååå) og resulterede i 1/15/2022 (mm/dd/åååå).

Læs mere: Sådan får du ugedagen ved hjælp af VBA

8. Tilføj time

Kode:

 Sub DateAdd_Hours() Range("F5") = DateAdd("h", 14, Range("D5"))) End Sub 

Resultat: 14 timer tilføjet til 1/1/2022 12:00 AM (mm/dd/åååå: hh/mm) og resulterede i 1/1/2022 14:00 PM (mm/dd/dd/åååå : hh/mm).

9. Tilføj minut

Kode:

 Sub DateAdd_Minutes() Range("F5") = DateAdd("n", 90, Range("D5"))) End Sub 

Resultat : 90 minutter = 1,30 timer tilføjet til 1/1/2022 12:00 AM (mm/dd/åååå) og resulterede i 1/1/2022 1:30 AM (mm/dd/åååå).

10. Tilføj andet

Kode:

 Sub DateAdd_Seconds() Range("F5") = DateAdd("s", 120, Range("D5"))) End Sub 

Resultat: 120 sekunder = 2 minutter tilføjet til 1/1/2022 12:00 AM (mm/dd/åååå : hh/mm) og resulterede i 1/1/2022 12:02 AM (mm/dd/dd/åååå : hh/mm).

Brug af DateAdd-funktionen i Excel til at trække forskellige intervalindstillinger fra hinanden

På samme måde kan vi trække fra år, måneder, dage, timer, minutter osv. fra en dato ved at bruge en Minustegn foran af den talargument . f.eks:

Kode:

 Sub DateAdd_Subtract_Years() Range("F5") = DateAdd("y", -2, Range("D5")) End Sub 

Resultat: 2 år fratrukket fra 1/1/2022 (mm/dd/åååå) og resulterede i 1/1/2020 (mm/dd/åååå).

Ting at huske

  • Når vi bruger 'w' at tilføje hverdage det løber op alle ugens dage inklusive lørdag og søndag, ikke kun arbejdsdage (som nogen måske forventer).
  • Funktionen DateAdd viser ikke ender med at vise en ugyldig dato Hvis vi f.eks. tilføjer 1 måned til 31. januar 2022, vil resultatet være 28. februar 2022, ikke 31. februar 2022 (den eksisterer ikke).
  • Hvis vi fratrækker mere end 122 år fra nu en fejl ville forekomme, fordi Excel-datoen starter fra 1. januar 1990.
  • Returdatoen for funktionen DateAdd afhænger af Kontrolpanel Datoindstillinger.
  • Vi bør dataargumentet i DateAdd-funktionen i overensstemmelse med Kalender Ejendom . Hvis kalenderen er Gregoriansk , den indgående da te argument bør også være i Gregoriansk Hvis kalenderen er i Hijri, skal dataargumentet ligeledes være i samme format.

Konklusion

Nu ved vi, hvordan man bruger VBA DateAdd-funktionen i Excel. Forhåbentlig vil det opmuntre dig til at bruge denne funktionalitet mere sikkert. Eventuelle spørgsmål eller forslag glem ikke at skrive dem i kommentarfeltet nedenfor

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.