Indholdsfortegnelse
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.xlsmIntroduktion 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 på 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 på 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