Innehållsförteckning
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.xlsmIntroduktion 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 på 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. på 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.