Funzione VBA DateDiff

DateDiff Descrizione

Restituisce la differenza tra due valori di data, in base all'intervallo specificato.

Esempi semplici di DateDiff

Ecco un semplice esempio di DateDiff:

123 Sub DateDiff_Year()MsgBox DateDiff("aaaa", #1/1/2019#, #8/1/2021#)Fine sottotitolo

Questo codice restituirà 2. Questa è la differenza nell'anno (indicata da "aaaa") tra 2 giorni. (2021 - 2022 = 2)

Nell'esempio sopra, cambiando le posizioni di date1 e date2.

123 Sub DateDiff_Year()MsgBox DateDiff("aaaa", #8/1/2021#, #1/1/2019#)Fine sottotitolo

Questo codice restituirà -2.

Sintassi DateDiff

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

La funzione DateDiff contiene 5 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

Data1, Data2: Due date che vuoi utilizzare nel calcolo.

Primo giorno della settimana: Una costante che specifica il primo giorno della settimana. Questo è facoltativo. Se non specificato, si presume la domenica.

Costante Valore Descrizione
vbUseSystem 0 Utilizza l'impostazione dell'API NLS.
vbdomenica 1 domenica (predefinito)
vblunedì 2 lunedì
vbmartedì 3 Martedì
vbmercoledì 4 mercoledì
vbgiovedì 5 giovedi
vbvenerdì 6 venerdì
vbsabato 7 il sabato

Prima settimana dell'anno: Una costante che specifica la prima settimana dell'anno. Questo è facoltativo. Se non specificato, si presume che la prima settimana sia la settimana in cui si verifica il 1 gennaio.

Costante Valore Descrizione
vbUseSystem 0 Utilizza l'impostazione dell'API NLS.
vbFirstJan1 1 Inizia con la settimana in cui cade il 1 gennaio (impostazione predefinita).
vbFirstFourDays 2 Inizia con la prima settimana che ha almeno quattro giorni nel nuovo anno.
vbFirstFullWeek 3 Inizia con la prima settimana completa dell'anno.

Programmazione VBA | Il generatore di codice funziona per te!

Esempi di funzione DateDiff VBA di Excel

Date di riferimento

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

Ognuna di queste funzioni DateDiff produce lo stesso risultato:

123456789 Sub DateDiff_ReferenceDates()MsgBox DateDiff("m", #4/1/2019#, #8/1/2021#)MsgBox DateDiff("m", DateSerial(2019, 4, 1), DateSerial(2021, 8, 1))MsgBox DateDiff("m", DateValue("1 aprile 2022"), DateValue("1 agosto 2022"))Fine sottotitolo

Oppure puoi fare riferimento a celle contenenti date:

12345 Sub DateDiff_ReferenceDates_Cell()MsgBox DateDiff("m", Range("C2").Value, Range("C3").Value)Fine sottotitolo

Oppure crea e fai riferimento a variabili di data:

123456789 Sub DateDiff_Variable()Dim dt1 come data, dt2 come datadt1 = #4/1/2019#dt2 = #8/1/2021#MsgBox DateDiff("m", dt1, dt2)Fine sottotitolo

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

Utilizzo di diverse unità di intervallo

quarti

123 Sub DateDiff_Quarter()MsgBox "il numero di trimestri: " & DateDiff("q", #1/1/2019#, #1/1/2021#)Fine sottotitolo

Mesi

123 Sub DateDiff_Month()MsgBox "il numero di mesi: " & DateDiff("m", #1/1/2019#, #1/1/2021#)Fine sottotitolo

giorni

123 Sub DateDiff_Day()MsgBox "il numero di giorni: " & DateDiff("d", #1/1/2019#, #1/1/2021#)Fine sottotitolo

Settimane

123 Sub DateDiff_Week()MsgBox "il numero di settimane: " & DateDiff("w", #1/1/2019#, #1/1/2021#)Fine sottotitolo

Ore

123456789101112 Sub DateDiff_Hour()Dim dt1 come dataDim dt2 come dataDim nDiff As Longdt1 = #8/14/2019 9:30:00 AM#dt2 = #8/14/2019 13:00:00 PM#nDiff = DateDiff("h", dt1, dt2)MsgBox "ore: " & nDiffFine sottotitolo

Minuti

123 Sub DateDiff_Minute()MsgBox "mins: " & DateDiff("n", #8/14/2019 9:30:00 AM#, #8/14/2019 9:35:00 AM#)Fine sottotitolo

Secondi

123 Sub DateDiff_Second()MsgBox "secs: " & DateDiff("s", #8/14/2019 9:30:10 AM#, #8/14/2019 9:30:22 AM#)Fine sottotitolo
wave wave wave wave wave