Come utilizzare la funzione VBA DateAdd in Excel

  • Condividi Questo
Hugh West

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.xlsm

Introduzione 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.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.