Sommario
Il Funzione VBA DateAdd è sotto la categoria data e ora di Excel. Funzioni VBA Utilizzando questa funzione è possibile aggiungere o sottrarre anni, mesi, giorni, trimestri e persino diversi intervalli di tempo come ore, minuti e secondi da una data. L'uso di data e ora nei calcoli quotidiani per la generazione di report o per fare confronti è uno scenario comune. In Excel, l'uso di funzioni VBA per la data e l'ora, come la funzione DateAdd, consente di effettuare calcoli complessi o che richiedono molto tempo.più efficiente e veloce.
Scaricate la cartella di lavoro pratica
Scaricate questo quaderno di esercizi per esercitarvi durante la lettura di questo articolo.
VBA Funzione DateAdd.xlsmIntroduzione alla funzione DateAdd di Excel VBA
Risultato:
una data a cui viene aggiunto o sottratto uno specifico intervallo di tempo
Sintassi:
DataAggiungi (intervallo, numero, data)
Argomenti:
Argomento | Richiesto/facoltativo | Descrizione |
---|---|---|
intervallo | Richiesto | A stringa espressione. |
L'intervallo di tempo in diverse impostazioni che si desidera aggiungere numero Richiesto A numerico espressione .
Il numero di intervalli da aggiungere o sottrarre
Può essere positivo - per futuro date
Può essere negativo - per passato date data Richiesto A data espressione
Il data a cui il intervalli sono aggiunto
Impostazioni:
Il Funzione DateAdd ha questi impostazioni dell'intervallo:
Impostazione | Descrizione |
---|---|
aaaa | Anno |
q | Trimestre |
m | Mese |
y | Anno del giorno |
d | Giorno |
w | Giorno feriale |
ww | Settimana |
h | Ora |
n | Minuto |
s | Secondo |
Esempi della funzione DateAdd di Excel VBA
Espressioni della formula della funzione DateAdd di Excel
Ci sono diversi modi per mettere il data argomento nella Funzione DateAdd. Tutti producono lo stesso risultato.
Mettere il seguente codice nel Editor Visual Basic:
(Come eseguire il codice nell'editor di Visual Basic)
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
Spiegazione :
DateAdd("yyyy",2, uno dei seguenti metodi)
Per inserire l'argomento data possiamo utilizzare diversi metodi:
- #1/1/2011#
- DateSerial( anno , mese, giorno)
- DateValue( data )
- Gamma ("cella") - Data memorizzata in una cella
- Memorizzazione della data in una variabile
Nelle cellule D3, D4, D5, D6, D7 mettiamo i metodi di cui sopra come il metodo data dell'argomento DataAggiungi in modo sequenziale e ottenere il risultato stesso risultato.
Abbiamo aggiunto 2 di più anni a 1/1/2022 che ha portato a 1/1/2024.
Qui,
aaaa rappresenta l'anno come intervallo
2 rappresenta il numero di intervalli come numero .
Aiuto: Come eseguire il codice nell'editor di Visual Basic
Seguire i passaggi:
- Dal Nastro di Excel , vai a Scheda sviluppatore e selezionare Visual Basic Scheda.
- Dalla nuova finestra, fare clic sul pulsante Inserire e scegliere Modulo.
- Scrivete il vostro codice nell'editor e premere F5 a correre.
Aggiunta di diverse impostazioni di intervallo con la funzione DateAdd in Excel
1. Aggiungi anno
Codice:
Sub DateAdd_Years() Range("F5") = DateAdd("yyyy", 2, Range("D5")) End Sub
Risultato: 2 anni aggiunto a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/1/2024 (mm/gg/aaaa).
Per saperne di più: Come utilizzare la funzione Anno in Excel VBA
2. Aggiungi trimestre
Codice:
Sub DateAdd_Quarters() Range ("F5") = DateAdd("q", 2, Range("D5")) End Sub
Risultato: 2 trimestri = 6 mesi aggiunto a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 7/1/2022 (mm/gg/aaaa).
3. Aggiungi mese
Codice:
Sub DateAdd_Months() Range("F5") = DateAdd("m", 2, Range("D5")) End Sub
Risultato: 2 mesi aggiunto a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 3/1/2022 (mm/gg/aaaa).
Per saperne di più: Come utilizzare la funzione MESE di Excel VBA
4. Aggiungere il giorno dell'anno
Codice:
Sub DateAdd_DayOfYear() Range("F5") = DateAdd("y", 2, Range("D5")) End Sub
Risultato : 2 Giorno dell'anno aggiunto a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/3/2022 (mm/gg/aaaa).
Per saperne di più: Come utilizzare la funzione Giorno in Excel VBA
5. Aggiungi giorno
Codice:
Sub DateAdd_Day() Range("F5") = DateAdd("d", 2, Range("D5")) End Sub
Risultato: 2 giorni aggiunti a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/3/2022 (mm/gg/aaaa).
Letture simili
- Excel VBA per trovare il numero della settimana (6 esempi rapidi)
- Come utilizzare la funzione DatePart di VBA in Excel (7 esempi)
- Utilizzare la funzione VBA DateSerial in Excel (5 semplici applicazioni)
- Come convertire una data da una stringa utilizzando VBA (7 modi)
6. Aggiungi giorno feriale
Codice:
Sub DateAdd_WeekDay() Range("F5") = DateAdd("w", 10, Range("D5")) End Sub
Risultato: 10 giorni settimanali aggiunti a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/11/2022 (mm/gg/aaaa).
7. Aggiungi settimana
Codice:
Sub DateAdd_Weeks() Range("F5") = DateAdd("ww", 2, Range("D5")) End Sub
Risultato: 2 settimane= 14 giorni aggiunti a 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/15/2022 (mm/gg/aaaa).
Per saperne di più: Come ottenere il giorno della settimana con VBA
8. Aggiungi ora
Codice:
Sub DateAdd_Hours() Range("F5") = DateAdd("h", 14, Range("D5")) End Sub
Risultato: 14 ore aggiunte a 1/1/2022 12:00 (mm/dd/yyyy: hh/mm) e ha dato luogo a 1/1/2022 2:00 PM (mm/gg/aaaa: hh/mm).
9. Aggiungi minuto
Codice:
Sub DateAdd_Minutes() Range("F5") = DateAdd("n", 90, Range("D5")) End Sub
Risultato: 90 minuti= 1,30 ore aggiunte a 1/1/2022 12:00 (mm/dd/yyyy) e ha dato luogo a 1/1/2022 1:30 (mm/gg/aaaa).
10. Aggiungi il secondo
Codice:
Sub DateAdd_Seconds() Range("F5") = DateAdd("s", 120, Range("D5")) End Sub
Risultato: 120 secondi = 2 minuti aggiunti a 1/1/2022 12:00 (mm/dd/yyyy : hh/mm) e ha dato luogo a 1/1/2022 12:02 (mm/gg/aaaa: hh/mm).
Uso della funzione DateAdd in Excel per sottrarre diverse impostazioni di intervallo
Allo stesso modo, possiamo sottrarre anni, mesi, giorni, ore, minuti, ecc. da una data utilizzando un segno meno in fronte del argomento numero Ad esempio:
Codice:
Sub DateAdd_Subtract_Years() Range("F5") = DateAdd("y", -2, Range("D5")) End Sub
Risultato: 2 anni sottratto da 1/1/2022 (mm/dd/yyyy) e ha dato luogo a 1/1/2020 (mm/gg/aaaa).
Cose da ricordare
- Quando utilizziamo 'w' per aggiungere giorni feriali si sommano tutti i giorni della settimana compresi il sabato e la domenica, non solo i giorni lavorativi (qualcuno potrebbe aspettarsi).
- La funzione DateAdd non mostra un data non valida Ad esempio, se aggiungiamo 1 mese al 31 gennaio 2022, il risultato sarà il 28 febbraio 2022, non il 31 febbraio 2022 (che non esiste).
- Se sottraiamo più di 122 anni da oggi una errore si verificherebbe perché la data di Excel inizia da 1 gennaio 1990.
- La data di ritorno della funzione DateAdd dipende dal parametro Pannello di controllo Impostazioni data.
- L'argomento data della funzione DateAdd deve essere impostato in base al parametro Proprietà del calendario Se il calendario è Gregoriano , l'ingresso da argomento dovrebbe essere anche in Gregoriano Allo stesso modo, se il calendario è in Hijri, l'argomento della data deve essere nello stesso formato.
Conclusione
Ora sappiamo come utilizzare la funzione VBA DateAdd in Excel. Speriamo che questo vi incoraggi a utilizzare questa funzionalità con maggiore sicurezza. Per qualsiasi domanda o suggerimento, non dimenticate di inserirlo nella casella dei commenti qui sotto.