Hur du använder VBA-funktionen DateAdd i Excel

  • Dela Detta
Hugh West

VBA DateAdd-funktionen finns under kategorin datum och tid i Excel's VBA-funktioner Med den här funktionen kan vi lägga till eller dra ifrån år, månader, dagar, kvartal och även olika tidsintervall som timmar, minuter och sekunder från ett givet datum. Att hantera datum och tid i dagliga beräkningar för att generera rapporter eller göra jämförelser är ett vanligt scenario. I Excel gör användningen av VBA-funktioner för datum och tid, som DateAdd-funktionen, att komplexa eller tidskrävande beräkningar blir enklare.effektivare och snabbare.

Ladda ner övningsboken

Ladda ner den här arbetsboken för att träna medan du läser den här artikeln.

VBA DateAdd-funktion.xlsm

Introduktion till Excel VBA DateAdd-funktionen

Resultat:

Ett datum till vilket ett visst tidsintervall läggs till eller dras ifrån.

Syntax:

DateAdd (intervall, antal, datum)

Argument:

Argument Obligatoriskt/valfritt Beskrivning
Intervall Krävs A sträng uttryck.

Det tidsintervall i olika inställningar som vi vill lägga till nummer Krävs A numerisk uttryck .

nummer intervall som ska läggas till eller dras ifrån

Kan vara positiv - för framtid datum

Kan vara negativ - för tidigare datum datum Krävs A datum uttryck

datum till vilken den intervall är har lagts till.

Inställningar:

Funktion DateAdd har dessa intervallinställningar:

Inställning av Beskrivning
yyyy År
q Kvartal
m Månad
y Dagens år
d Dag
w Veckodag
ww Vecka
h Timme
n Protokoll
s Andra

Exempel på Excel VBA DateAdd-funktionen

Formeluttryck för Excel-funktionen DateAdd

Det finns olika sätt att placera datum argument i den Funktionen DateAdd. De resulterar alla i samma resultat.

Ange följande kod i den Visual Basic Editor:

(Hur man kör kod i Visual Basic Editor)

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

Förklaring :

DateAdd("yyyy",2, en av följande metoder)

Vi kan använda olika metoder för att ange datumargumentet:

  • #1/1/2011#
  • DateSerial( år , månad, dag)
  • DateValue( datum )
  • Utbud ("cell") - Datum som lagras i en cell
  • Lagra datumet i en variabel

I celler D3, D4, D5, D6, D7 Vi använder ovanstående metoder som datum argumentet i den DateAdd funktionen och fick den samma resultat.

Vi har lagt till 2 mer år till 1/1/2022 vilket resulterade i 1/1/2024.

Här,

yyyy representerar år som Intervall

2 representerar antalet intervaller som nummer .

Hjälp: Hur man kör kod i Visual Basic-redigeraren

Följ stegen:

  • Från Excel-bandet , gå till Fliken för utvecklare och välj Visual Basic Fliken.

  • I det nya fönstret klickar du på Infoga och väljer Modul.

  • Skriv din kod i redigeringsverktyget och tryck på F5 till kör.

Lägga till olika intervallinställningar med funktionen DateAdd i Excel

1. Lägg till år

Kod:

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

Resultat: 2 år läggs till i 1/1/2022 (mm/dd/åååå) och resulterade i 1/1/2024 (mm/dd/åååå).

Läs mer: Hur man använder funktionen År i Excel VBA

2. Lägg till kvartal

Kod:

 Sub DateAdd_Quarters() Område ("F5") = DateAdd("q", 2, Range("D5")) End Sub 

Resultat: 2 kvartal = 6 månader läggs till i 1/1/2022 (mm/dd/åååå) och resulterade i 7/1/2022 (mm/dd/åååå).

3. Lägg till månad

Kod:

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

Resultat: 2 månader läggs till i 1/1/2022 (mm/dd/åååå) och resulterade i 3/1/2022 (mm/dd/åååå).

Läs mer: Hur man använder Excel VBA MONTH-funktionen

4. Lägg till dag på året

Kod:

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

Resultat : 2 Årets dag läggs till till 1/1/2022 (mm/dd/åååå) och resulterade i 1/3/2022 (mm/dd/åååå).

Läs mer: Hur man använder Day-funktionen i Excel VBA

5. Lägg till dag

Kod:

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

Resultat : 2 dagar tillagd till 1/1/2022 (mm/dd/åååå) och resulterade i 1/3/2022 (mm/dd/åååå).

Liknande läsningar

  • Excel VBA för att hitta veckans nummer (6 snabba exempel)
  • Hur du använder VBA-funktionen DatePart i Excel (7 exempel)
  • Använd VBA DateSerial-funktionen i Excel (5 enkla tillämpningar)
  • Hur man konverterar datum från sträng med VBA (7 sätt)

6. Lägg till veckodag

Kod:

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

Resultat: 10 WeekDays läggs till till 1/1/2022 (mm/dd/åååå) och resulterade i 1/11/2022 (mm/dd/åååå).

7. Lägg till vecka

Kod:

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

Resultat: 2 veckor = 14 dagar läggs till till 1/1/2022 (mm/dd/åååå) och resulterade i 1/15/2022 (mm/dd/åååå).

Läs mer: Hur man får fram veckans dag med hjälp av VBA

8. Lägg till timme

Kod:

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

Resultat: 14 timmar tillkommer till 1/1/2022 12:00 AM (mm/dd/åååå: hh/mm) och resulterade i 1/1/2022 14:00 (mm//dd/åååå : hh/mm).

9. Lägg till minut

Kod:

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

Resultat : 90 minuter = 1,30 timmar läggs till. till 1/1/2022 12:00 AM (mm/dd/åååå) och resulterade i 1/1/2022 1:30 AM (mm/dd/åååå).

10. Lägg till en andra

Kod:

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

Resultat: 120 sekunder = 2 minuter läggs till till 1/1/2022 12:00 AM (mm/dd/åååå : hh/mm) och resulterade i 1/1/2022 12:02 AM (mm//dd/åååå : hh/mm).

Användning av DateAdd-funktionen i Excel för att subtrahera olika intervallinställningar

På samma sätt kan vi subtrahera år, månader, dagar, timmar, minuter osv. från ett datum genom att använda en Minustecken. framsida av den argument för nummer. Till exempel:

Kod:

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

Resultat: 2 år subtraheras från 1/1/2022 (mm/dd/åååå) och resulterade i 1/1/2020 (mm/dd/åååå).

Saker att komma ihåg

  • När vi använder 'w' för att lägga till vardagar det blir en summa. alla veckans dagar inklusive lördag och söndag, inte bara arbetsdagarna (vilket någon kanske förväntar sig).
  • DateAdd-funktionen visar inte en ogiltigt datum Om vi till exempel lägger till en månad till den 31 januari 2022 blir resultatet den 28 februari 2022, inte den 31 februari 2022 (den finns inte).
  • Om vi drar bort mer än 122 år från nu en fel skulle uppstå eftersom Excel-datumet startar från 1 januari 1990.
  • Returdatumet för DateAdd-funktionen beror på Kontrollpanelen Datuminställningar.
  • Vi bör ange datumargumentet i DateAdd-funktionen enligt följande Kalenderegenskap . Om kalendern är Gregorianska , den inmatade da te-argument bör också finnas i Gregorianska Om kalendern är i Hijri måste datumargumentet vara i samma format.

Slutsats

Nu vet vi hur man använder VBA DateAdd-funktionen i Excel. Förhoppningsvis kan det uppmuntra dig att använda denna funktion på ett säkrare sätt. Om du har några frågor eller förslag, glöm inte att skriva dem i kommentarsfältet nedan.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.