In questo tutorial, esamineremo le diverse funzioni di data VBA integrate.
Funzione data VBA
È possibile utilizzare la funzione Data per restituire la data corrente.
La sintassi della funzione Date è Date(). Non ha argomenti.
Il codice seguente mostra come utilizzare la funzione Data:
12345678 | Sub UsingTheDateFunction()Dim theData As DatetheDate = Data()Debug.Stampa la dataFine sottotitolo |
Il risultato è:
Funzione VBA Now
È possibile utilizzare la funzione Now per restituire la data e l'ora correnti.
La sintassi della funzione Now è Now(). Non ha argomenti.
Il codice seguente mostra come utilizzare la funzione Now:
12345678 | Sub UsingTheNowFunction()Dim theData As DatetheDate = Now()Debug.Stampa la dataFine sottotitolo |
Il risultato è:
Funzione tempo VBA
È possibile utilizzare la funzione Ora per restituire l'ora corrente.
La sintassi della funzione Time è Time(). Non ha argomenti.
Il codice seguente mostra come utilizzare la funzione Time:
12345678 | Sub UsingTheTimeFunction()Dim theTime As DatetheTime = Time()Debug.Stampa l'oraFine sottotitolo |
Il risultato è:
Funzione VBA DateAdd
È possibile utilizzare la funzione DateAdd per aggiungere un intervallo di data/ora a una data o un'ora e la funzione restituirà la data/ora risultante.
La sintassi della funzione DateAdd è:
DateAdd(Intervallo, Numero, Data) dove:
- Interval - Una stringa che specifica il tipo di intervallo da utilizzare. L'intervallo può essere uno dei seguenti valori:
“d” - giorno
“ww” - settimana
“w” - giorno della settimana
“m” - mese
“q” - quarto
"aaaa" - anno
"y" - giorno dell'anno
“h” - ora
“n” - minuto
“s” - secondo
- Numero - Il numero di intervalli che si desidera aggiungere alla data/ora originale.
- Data - La data/ora originale.
Nota: quando si utilizzano le date nel codice, è necessario racchiuderle tra # o virgolette.
Il codice seguente mostra come utilizzare la funzione DateAdd:
123456789 | Sub UsingTheDateAddFunction()Oscura dopo Data come datalaterDate = DateAdd("m", 10, "11/12/2019")Debug.Stampa dopo DataFine sottotitolo |
Il risultato è:
Funzione VBA DateDiff
È possibile utilizzare la funzione DateDiff per ottenere la differenza tra due date, in base a un intervallo di tempo specificato.
La sintassi della funzione DateDiff è:
DateDiff(Interval, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) dove:
- Interval - Una stringa che specifica il tipo di intervallo da utilizzare. L'intervallo può essere uno dei seguenti valori:
“d” - giorno
“ww” - settimana
“w” - giorno della settimana
“m” - mese
“q” - quarto
"aaaa" - anno
"y" - giorno dell'anno
“h” - ora
“n” - minuto
“s” - secondo
- Date1 - Un valore di data che rappresenta la data precedente.
- Date2 - Un valore di data che rappresenta la data successiva.
- Primo giorno della settimana (Opzionale) - Una costante che specifica il giorno della settimana che la funzione deve utilizzare come primo giorno della settimana. Se vuoto Sunday viene utilizzato come primo giorno della settimana. Firstdayofweek può essere uno dei seguenti valori:
-vbSunday - usa la domenica come primo giorno della settimana.
-vbMonday - usa il lunedì come primo giorno della settimana.
-vbTuesday: utilizza il martedì come primo giorno della settimana.
-vbWednesday: utilizza mercoledì come primo giorno della settimana.
-vbThursday: utilizza giovedì come primo giorno della settimana.
-vbFriday: utilizza il venerdì come primo giorno della settimana.
-vbSaturday: utilizza il sabato come primo giorno della settimana.
-vbUseSystemDayOfTheWeek: utilizza il primo giorno della settimana specificato dalle impostazioni del sistema.
- Prima settimana dell'anno (Opzionale) - Una costante che specifica la prima settimana dell'anno. Se vuoto, la settimana del 1° gennaio viene utilizzata come prima settimana dell'anno. La prima settimana dell'anno può essere uno dei seguenti valori:
-vbFirstJan1 - utilizza la settimana contenente il 1° gennaio.
-vbFirstFourDays: utilizza la prima settimana che contiene almeno quattro giorni del nuovo anno.
-vbFirstFullWeek - utilizza la prima settimana completa dell'anno.
-vbSystem: utilizza la prima settimana dell'anno come specificato dalle impostazioni di sistema.
Il codice seguente mostra come utilizzare la funzione DateDiff:
123456789 | Sub UsingTheDateDiffFunction()Dim theDifferenceBetween TwoDates as LongtheDifferenceBetweenTwoDate = DateDiff("q", "11/11/2010", "12/10/2012")Debug.Stampa la differenza tra due dateFine sottotitolo |
Il risultato è:
Funzione VBA DatePart
È possibile utilizzare la funzione DatePart per restituire una parte (giorno, settimana, trimestre, mese ecc.) di una determinata data.
La sintassi della funzione DatePart è:
DatePart(Interval, Date,[Firstdayofweek], [Firstweekofyear]) dove:
- Interval - Una stringa che specifica la parte della data da restituire. L'intervallo può essere uno dei seguenti valori:
“d” - giorno
“ww” - settimana
“w” - giorno della settimana
“m” - mese
“q” - quarto
"aaaa" - anno
"y" - giorno dell'anno
“h” - ora
“n” - minuto
“s” - secondo
- Data: la data di cui si desidera che la funzione restituisca una parte.
- Primo giorno della settimana (Opzionale) - Una costante che specifica il giorno della settimana che la funzione deve utilizzare come primo giorno della settimana. Se vuoto Sunday viene utilizzato come primo giorno della settimana. Firstdayofweek può essere uno dei seguenti valori:
-vbSunday - usa la domenica come primo giorno della settimana.
-vbMonday - usa il lunedì come primo giorno della settimana.
-vbTuesday: utilizza il martedì come primo giorno della settimana.
-vbWednesday: utilizza mercoledì come primo giorno della settimana.
-vbThursday: utilizza giovedì come primo giorno della settimana.
-vbFriday: utilizza il venerdì come primo giorno della settimana.
-vbSaturday: utilizza il sabato come primo giorno della settimana.
-vbUseSystemDayOfTheWeek: utilizza il primo giorno della settimana specificato dalle impostazioni del sistema.
- Prima settimana dell'anno (Opzionale) - Una costante che specifica la prima settimana dell'anno. Se vuoto, la settimana del 1° gennaio viene utilizzata come prima settimana dell'anno. La prima settimana dell'anno può essere uno dei seguenti valori:
-vbFirstJan1 - utilizza la settimana contenente il 1° gennaio.
-vbFirstFourDays: utilizza la prima settimana che contiene almeno quattro giorni del nuovo anno.
-vbFirstFullWeek - utilizza la prima settimana completa dell'anno.
-vbSystem: utilizza la prima settimana dell'anno come specificato dalle impostazioni di sistema.
Il codice seguente mostra come utilizzare la funzione DatePart:
123456789 | Sub UsingTheDatePartFunction()Dim thePartOfTheDate come numero interothePartOfTheDate = DatePart("yyyy", "12/12/2009")Debug.Stampa thePartOfTheDateFine sottotitolo |
Il risultato è:
Funzione VBA DateSerial
La funzione VBA DateSerial accetta anno, mese e giorno di input e restituisce una data.
La sintassi della funzione DateSerial è:
DateSerial(Year, Month, Day) dove:
- Anno - Un valore intero compreso tra 100 e 9999 che rappresenta l'anno.
- Mese - Un valore intero che rappresenta il mese.
- Giorno - Un valore intero che rappresenta il giorno.
Il codice seguente mostra come utilizzare la funzione DateSerial:
123456789 | Sub UsingTheDateSerialFunction()Dim theData As DatetheDate = DateSerial(2010, 11, 10)Debug.Stampa la dataFine sottotitolo |
Il risultato è:
Funzione DateValue VBA
La funzione DateValue restituisce una data quando viene fornita una rappresentazione di stringa di una data.
La sintassi della funzione DateValue è:
DateValue(Date) dove:
- Data - Una stringa che rappresenta la data.
Il codice seguente mostra come utilizzare la funzione DateValue:
123456789 | Sub UsingTheDateValueFunction()Dim theData As DatetheDate = DateValue("29 ottobre 2010")Debug.Stampa la dataFine sottotitolo |
Il risultato è:
Funzione giorno VBA
È possibile utilizzare la funzione Giorno per restituire il giorno di una data inserita.
La sintassi della funzione giorno è:
Giorno(Valore_data) dove:
- Date_value - La data da cui si desidera estrarre il giorno.
Il codice seguente mostra come utilizzare la funzione giorno:
123456789 | Sub UsingTheDayFunction()Dim theDay As IntegertheDay = Day("10/12/2010")Debug.Stampa il giornoFine sottotitolo |
Il risultato è:
Funzione ora VBA
È possibile utilizzare la funzione Hour per restituire l'ora di un orario immesso.
La sintassi della funzione ora è:
Ora(Ora) dove:
- Ora - L'ora da cui si desidera estrarre l'ora.
Il codice seguente mostra come utilizzare la funzione Hour:
123456789 | Sub UsingTheHourFunction()Dim theHour As IntegertheHour = Hour("2:14:17")Debug.Stampa l'oraFine sottotitolo |
Il risultato è:
Funzione minuti VBA
È possibile utilizzare la funzione Minuti per restituire il valore dei minuti di un orario immesso.
La sintassi della funzione minuti è:
Minuto(Tempo) dove:
- Ora - L'ora da cui si desidera estrarre il valore dei minuti.
Il codice seguente mostra come utilizzare la funzione Minute:
123456789 | Sub UsingTheMinuteFunction()Dim theMinuteValue As IntegertheMinuteValue = Minute("2:14:17 AM")Debug.Print theMinuteValueFine sottotitolo |
Il risultato è:
Seconda funzione VBA
È possibile utilizzare la seconda funzione per restituire il secondo valore di un tempo di input.
La sintassi della seconda funzione è:
Secondo (tempo) dove:
- Ora - L'ora da cui si desidera estrarre il secondo valore.
Il codice seguente mostra come utilizzare la seconda funzione:
123456789 | Sub UsandoLaSecondaFunzione()Dim theSecondValue As IntegertheSecondValue = Second("2:14:17")Debug.Stampa ilSecondoValoreFine sottotitolo |
Il risultato è:
Funzione mese VBA
È possibile utilizzare la funzione Mese per restituire il mese di una data inserita.
La sintassi della funzione mese è:
Mese(Valore_data) dove:
- Date_value - La data da cui si desidera estrarre il mese.
Il codice seguente mostra come utilizzare la funzione mese:
12345678 | Sub UsingTheMonthFunction()Dim theMonth As IntegertheMonth = Month("18/11/2010")Debug.Stampa il meseFine sottotitolo |
Il risultato è:
Funzione MonthName VBA
È possibile utilizzare la funzione MonthName per restituire il nome di un mese da un numero di mese fornito dall'input.
La sintassi della funzione MonthName è:
MonthName(Number_of_month, [Abbreviate]) dove:
- Number_of_month - Un valore intero compreso tra 1 e 12.
- Abbreviato (Opzionale) - Specifica se il nome del mese deve essere abbreviato. Se vuoto, viene utilizzato il valore predefinito False.
12345678 | Sub UsingTheMonthNameFunction()Dim theMonthName As StringtheMonthName = MonthName(12, True)Debug.Stampa theMonthNameFine sottotitolo |
Il risultato è:
Funzione TimeSerial VBA
La funzione TimeSerial richiede un'ora, un minuto e un secondo di input e restituisce un'ora.
La sintassi della funzione TimeSerial è:
TimeSerial(Ore, Minuti, Secondi) dove:
- Ora - Un valore intero compreso tra 0 e 23 che rappresenta il valore dell'ora.
- Minuto - Un valore intero compreso tra 0 e 59 che rappresenta il valore dei minuti.
- Secondo - Un valore intero compreso tra 0 e 59 che rappresenta il secondo valore.
Il codice seguente mostra come utilizzare la funzione TimeSerial:
12345678 | Sub UsingTheTimeSerialFunction()Dim theTime As DatetheTime = TimeSerial(1, 10, 15)Debug.Stampa l'oraFine sottotitolo |
Il risultato è:
Funzione TimeValue VBA
La funzione TimeValue restituisce un Time da una rappresentazione di stringa di una data o un'ora.
La sintassi della funzione TimeValue è:
TimeValue(Time) dove:
- Ora - Una stringa che rappresenta l'ora.
Il codice seguente mostra come utilizzare la funzione TimeValue:
12345678 | Sub UsingTheTimeValueFunction()Dim theTime As DatetheTime = TimeValue("22:10:17")Debug.Stampa l'oraFine sottotitolo |
Il risultato è:
Funzione giorno della settimana VBA
È possibile utilizzare la funzione Weekday per restituire un numero intero compreso tra 1 e 7 che rappresenta un giorno della settimana da una data di input.
La sintassi della funzione Weekday è:
Weekday(Date, [Firstdayofweek]) dove:
- Data: la data da cui si desidera estrarre il valore del giorno della settimana.
- Primo giorno della settimana (Opzionale) - Una costante che specifica il giorno della settimana che la funzione deve utilizzare come primo giorno della settimana. Se vuoto, viene utilizzata la domenica come primo giorno della settimana. Firstdayofweek può essere uno dei seguenti valori:
-vbSunday - usa la domenica come primo giorno della settimana.
-vbMonday - usa il lunedì come primo giorno della settimana.
-vbTuesday: utilizza il martedì come primo giorno della settimana.
-vbWednesday: utilizza mercoledì come primo giorno della settimana.
-vbThursday: utilizza giovedì come primo giorno della settimana.
-vbFriday: utilizza il venerdì come primo giorno della settimana.
-vbSaturday: utilizza il sabato come primo giorno della settimana.
-vbUseSystemDayOfTheWeek: utilizza il primo giorno della settimana specificato dalle impostazioni del sistema.
Il codice seguente mostra come utilizzare la funzione Weekday:
1234567 | Sub UsingTheWeekdayFunction()Dim theWeekDay As IntegertheWeekDay = Weekday("11/20/2019")Debug.Stampa theWeekDayFine sottotitolo |
Il risultato è:
Funzione WeekdayName VBA
È possibile utilizzare la funzione WeekdayName per restituire il nome di un giorno della settimana da un numero del giorno della settimana fornito dall'input.
La sintassi della funzione WeekdayName è:
WeekdayName(Weekday, [Abbreviate], [Firstdayoftheweek]) dove:
- Weekday - Un valore intero compreso tra 1 e 7.
- Abbreviato (Opzionale) -Specifica se il nome del giorno della settimana deve essere abbreviato. Se vuoto, viene utilizzato il valore predefinito False.
- Primo giorno della settimana (Opzionale) - Una costante che specifica il giorno della settimana che la funzione deve utilizzare come primo giorno della settimana. Se vuoto Sunday viene utilizzato come primo giorno della settimana. Firstdayofweek può essere uno dei seguenti valori:
-vbSunday - usa la domenica come primo giorno della settimana.
-vbMonday - usa il lunedì come primo giorno della settimana.
-vbTuesday: utilizza il martedì come primo giorno della settimana.
-vbWednesday: utilizza mercoledì come primo giorno della settimana.
-vbThursday: utilizza giovedì come primo giorno della settimana.
-vbFriday: utilizza il venerdì come primo giorno della settimana.
-vbSaturday: utilizza il sabato come primo giorno della settimana.
-vbUseSystemDayOfTheWeek: utilizza il primo giorno della settimana specificato dalle impostazioni del sistema.
12345678 | Sub UsingTheWeekdayNameFunction()Dim theWeekdayName As StringtheWeekdayName = WeekdayName(4)Debug.Stampa theWeekdayNameFine sottotitolo |
Il risultato è:
Funzione anno VBA
È possibile utilizzare la funzione Anno per restituire l'anno di una data di input.
La sintassi della funzione anno è:
Anno (valore_data) dove:
- Date_value - La data da cui si desidera estrarre l'anno.
Il codice seguente mostra come utilizzare la funzione Anno:
12345678 | Sub UsingTheYearFunction()Dim theYear As IntegertheYear = Year("11/12/2010")Debug.Stampa l'annoFine sottotitolo |
Il risultato è:
Confrontare le date in VBA
Puoi confrontare le date utilizzando gli operatori >, < e = in VBA. Il codice seguente mostra come confrontare due date in VBA.
12345678910111213141516171819 | Sotto Confronto Date()Dim dateUno come dataDim dateDue As DatedataUno = "10/10/2010"dataDue = "11/11/2010"Se dateOne > dateTwo ThenDebug.Print "dateOne è la data successiva"ElseIf dateOne = dateTwo ThenDebug.Print "Le due date sono uguali"AltroDebug.Print "dateTwo è la data successiva"Finisci seFine sottotitolo |
Scopri di più su come formattare le date come stringhe visualizzando questo tutorial.