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 |
sì | 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 |