Funzione VBA DateAdd

DataAggiungi descrizione

La funzione VBA DateAdd consente di aggiungere (o sottrarre) giorni, mesi, anni, ore, trimestri, ecc. a Date o Times.

Esempi semplici di aggiunta di date

Ecco un semplice esempio di DateAdd:

123 Sub DateAdd_Day()MsgBox DateAdd("d", 20, #4/1/2021#)Fine sottotitolo

Questo codice aggiungerà 20 giorni (indicati da “d”) alla data 4/1/2021:

Invece, possiamo cambiare l'argomento Intervallo da "d" a "m" per aggiungere 20 mesi alla data 4/1/2021:

123 Sub DateAdd_Month()MsgBox DateAdd("m", 20, #4/1/2021#)Fine sottotitolo

Invece di visualizzare la data in una finestra di messaggio, possiamo assegnarla a una variabile:

123456 Sub DateAdd_Day2()Dim dt come datadt = DateAdd("d", 20, #4/1/2021#)MsgBox dtFine sottotitolo

Sintassi DateAdd

Nell'editor VBA, puoi digitare "DateAdd(" per vedere la sintassi per la funzione DateAdd:

La funzione DateAdd contiene 3 argomenti:

Intervallo: Unità di tempo (giorni, mesi, anni, ecc.). Inserisci come stringa. (es. “m” per Mese)

Collocamento Descrizione
aaaa Anno
Q Trimestre
m Mese
giorno dell'anno
D Giorno
w giorno della settimana
ww Settimana
h Ora
n Minuto
S Secondo

Numero: Valore numerico che rappresenta il numero di unità di tempo da aggiungere. (es. 20 per aggiungere 20 unità)

Data: Data iniziale. Vedere la sezione successiva.

Programmazione VBA | Il generatore di codice funziona per te!

Esempi di funzione Excel VBA DateAdd

Date di riferimento

Per iniziare, dimostreremo diversi modi per fare riferimento alle date utilizzando la funzione VBA DateAdd.

Ognuna di queste funzioni DateAdd produce lo stesso risultato:

123456789 Sub DateAdd_ReferenceDate()MsgBox DateAdd("m", 2, #4/1/2021#)MsgBox DateAdd("m", 2, DateSerial(2021, 4, 1))MsgBox DateAdd("m", 2, DateValue("1 aprile 2022"))Fine sottotitolo

Oppure puoi fare riferimento a una cella contenente una data:

12345 Sub DateAdd_ReferenceDates_Cell()MsgBox DateAdd("m", 2, Range("C2").Value)Fine sottotitolo

Oppure crea e fai riferimento a una variabile di data:

12345678 Sub DateAdd_Variable()Dim dt come datadt = #4/1/2021#MsgBox DateAdd("m", 2, dt)Fine sottotitolo

Aggiungi o sottrai date

Ti abbiamo già mostrato come aggiungere una data:

123456 Sub DateAdd_Day2()Dim dt come datadt = DateAdd("d", 20, #4/1/2021#)MsgBox dtFine sottotitolo

Puoi sottrarre dalle date utilizzando un numero negativo (es. -20 invece di 20):

123456 Sub DateAdd_Day()Dim dt come datadt = DateAdd("d", -20, #4/1/2021#)MsgBox dtFine sottotitolo

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

Aggiunta di diverse unità di tempo

Anni

123 Sub DateAdd_Years()MsgBox DateAdd("yyyy", 4, #4/1/2021#)Fine sottotitolo

Trimestre

123 Sub DateAdd_Quarters()MsgBox DateAdd("q", 2, #4/1/2021#)Fine sottotitolo

Mese

123 Sub DateAdd_Months()MsgBox DateAdd("m", 2, #4/1/2021#)Fine sottotitolo

giorno dell'anno

123 Sub DateAdd_DaysofYear()MsgBox DateAdd("y", 2, #4/1/2021#)Fine sottotitolo

Giorno

123 Sub DateAdd_Days3()MsgBox DateAdd("d", 2, #4/1/2021#)Fine sottotitolo

giorno della settimana

123 Sub DateAdd_Weekdays()MsgBox DateAdd("w", 2, #4/1/2021#)Fine sottotitolo

Settimana

123 Sub DateAdd_Weeks()MsgBox DateAdd("ww", 2, #4/1/2021#)Fine sottotitolo

Programmazione VBA | Il generatore di codice funziona per te!

Aggiungi a oggi

Questi esempi aggiungeranno unità di tempo a oggi utilizzando la funzione Data.

123456789 Sub DateAdd_Year_Test()Dim dtOggi come dataDim dtPiù tardi come datadtToday = DatadtLater = DateAdd("yyyy", 1, dtToday)MsgBox "Un anno dopo è " & dtLaterFine sottotitolo
123 Sub DateAdd_Test_Trimestre()MsgBox "2 trimestri dopo è " & DateAdd("q", 2, Date)Fine sottotitolo

Addizione e sottrazione di tempo

La funzione DateAdd funziona anche con Times. Ecco alcuni esempi di aggiunta (o sottrazione) di tempo a un'ora:

Ora

Questo esempio aggiungerà 2 ore alla volta:

123 Sub DateAdd_Hour()MsgBox DateAdd("h", 2, #4/1/2021 6:00:00#)Fine sottotitolo

Minuto

Questo esempio sottrarrà 120 minuti dall'ora corrente:

123 Sub DateAdd_Minute_Subtract()MsgBox DateAdd("n", -120, Adesso)Fine sottotitolo

Secondo

123 Sub DateAdd_Second()MsgBox DateAdd("s", 2, #4/1/2021 6:00:00#)Fine sottotitolo

Formattazione delle date

Quando le date (o le ore) vengono visualizzate in Excel, UserForms o Messageboxes, è necessario indicare come devono essere visualizzate le date utilizzando la funzione Format. Abbiamo incluso alcuni esempi di seguito:

123456789101112131415161718 Sub FormattingDateTimes()"Restituisce la data e l'ora correnti"dt = Adesso()'ex. 07/02/2021Intervallo ("B2") = Formato (gg, "mm/gg/aaaa")'ex. 2 luglio 2022Intervallo ("B3") = Formato (gg, "mmmm d, aaaa")'ex. 2 luglio 2022 09:10Intervallo("B4") = Formato(dt, "mm/gg/aaaa hh:mm")'ex. 7.2.21 9:10Intervallo("B5") = Formato(gg, "m.g.aa h:mm AM/PM")Fine sottotitolo

wave wave wave wave wave