Sommario
Implementazione Macro VBA è il metodo più efficace, rapido e sicuro per eseguire qualsiasi operazione in Excel. In questo articolo, vi mostreremo come formattare la data in Excel usando VBA .
Scarica il libro di lavoro
È possibile scaricare la cartella di lavoro Excel gratuita da qui.
Formattare la data con VBA.xlsm
4 metodi per formattare la data in Excel con VBA
Guardate l'esempio seguente: abbiamo memorizzato le stesse date in entrambi i file Colonna B e C in modo che quando formattiamo la data in Colonna C , lo saprete dal Colonna B in quale formato era la data precedente.
1. VBA per formattare la data da un tipo all'altro in Excel
Per prima cosa vediamo come formattare la data da Cellula C5 nel nostro set di dati con VBA a " Martedì-2022 ".
Passi:
- Stampa Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .
- Nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .
- Copiare il codice seguente e incollarlo nella finestra del codice.
Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-yyyy" 'Questo formatterà la data in "martedì-gennaio-2022" End Sub
Il codice è ora pronto per essere eseguito.
- Stampa F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm È anche possibile fare clic sul pulsante piccola icona Play nella barra dei sottomenu per eseguire la macro.
Questo codice formatta la data " 11-01-22 " a " Martedì-2022 ".
È possibile convertire questo formato di data in molti altri formati: basta seguire il codice sottostante per trasformare la data nel formato desiderato.
Sub FormatDate() 'La data originale è "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'In questo modo la data verrà formattata in "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'In questo modo la data verrà formattata in "Mar-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'In questo modo la data verrà formattata in "Mar-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'In questo modo la data verrà formattata in "Mar-11-2022"."11-Gennaio-2022" Range("C9").NumberFormat = "dd-mm-yyy" 'In questo modo la data verrà formattata in "11-Gennaio-2022" Range("C10").NumberFormat = "dd-mm-yy" 'In questo modo la data verrà formattata in "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'In questo modo la data verrà formattata in "Mar Gennaio 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'In questo modo la data verrà formattata in "Martedì Gennaio 2022" End Sub
Panoramica
Per saperne di più: Ora e Funzioni di formato in Excel VBA
2. Incorporare VBA per convertire la data con la funzione FORMAT
Excel ha un proprio numero di serie per le singole date. Se si vuole conoscere il numero di serie di una qualsiasi data
data specifica, è necessario richiedere la funzione DATEVALUE .
Supponiamo di voler conoscere il numero di serie della data " 11 gennaio 2022 ", allora è necessario scrivere la formula come,
=DATEVALORE("11 gennaio 2022")
Excel vi fornirà il numero di serie 44572 di questa data.
Ora trasformeremo questo numero nel formato della data corrispondente.
Passi:
- Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
- Nella finestra del codice, copiare il codice seguente e incollarlo.
Sub Format_Date() Dim iDate As Variant iDate = 44572 'Numero di serie Excel della data "11 gennaio 2022" MsgBox Format(iDate, "GG-MM-AAAA") End Sub
Il codice è ora pronto per essere eseguito.
Otterrete la data " 11 gennaio 2022 " nella casella del messaggio.
Per saperne di più: Come utilizzare la funzione VBA DateValue in Excel
Letture simili
- Come inserire la data corrente in Excel (3 modi)
- Variabile data nei codici VBA (7 usi delle macro con esempi)
- Ottenere la data corrente in VBA (3 modi)
- Come utilizzare la scorciatoia per la data di Excel
3. VBA per trasformare la data in base a una parte specifica in Excel
Se si desidera formattare una parte specifica della data, ad esempio solo il giorno/mese/anno, scrivere il codice come segue,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Questo formatterà la data in "gennaio" End Sub
Il codice è ora pronto per essere eseguito.
Il " mmmm " in questo codice indica la forma lunga del nome del mese.
Poiché la data è " 11 gennaio 2022 ", quindi questo pezzo di codice restituirà " Gennaio ".
È possibile implementare questo codice per formattare ed estrarre qualsiasi parte specifica che si desidera dalla data.
Sub FormatDateValue() 'La data originale è "11-01-22" Range("C5").NumberFormat = "dd" 'In questo modo la data verrà formattata in "11" Range("C6").NumberFormat = "ddd" 'In questo modo la data verrà formattata in "Mar" Range("C7").NumberFormat = "dddd" 'In questo modo la data verrà formattata in "Martedì" Range("C8").NumberFormat = "m" 'In questo modo la data verrà formattata in "1" Range("C9").NumberFormat = "mm" 'In questo modo la data verrà formattata in "1".Formatta la data in "01" Range("C10").NumberFormat = "mmm" 'Formatta la data in "gen" Range("C11").NumberFormat = "yy" 'Formatta la data in "22" Range("C12").NumberFormat = "yyyy" 'Formatta la data in "2022" Range("C13").NumberFormat = "dd-mm" 'Formatta la data in "11-01" Range("C14").NumberFormat = "mm-yyy" 'Formatta la data in "11-01" Range("C14").NumberFormat = "mm-yyy" 'Formatta la data in "01".a "01-2022" Range("C15").NumberFormat = "mmm-yyy" 'Questo formatterà la data a "gen-2022" Range("C16").NumberFormat = "dd-yy" 'Questo formatterà la data a "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Questo formatterà la data a "mar 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Questo formatterà la data a "martedì-2022" Range("C19").NumberFormat = "dd-mmm"'Questo formatta la data in "11-gennaio" Range("C20").NumberFormat = "dddd-mmmm" 'Questo formatta la data in "martedì-gennaio" End Sub
Panoramica
4. Inserire VBA per formattare la data in un foglio di lavoro specifico in Excel
Se si desidera formattare una data in base a un foglio di lavoro specifico, occorre innanzitutto impostare il nome del foglio di lavoro nel codice, quindi formattare la data in base al tipo richiesto.
- Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
- Nella finestra del codice, copiare il codice seguente e incollarlo.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Imposta il foglio di lavoro denominato "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub
Il codice è ora pronto per essere eseguito.
Guardate la terza riga del codice, dove per prima cosa impostiamo il parametro " Esempio ", quindi formatta la data di quel determinato foglio Excel.
Conclusione
In questo articolo è stato mostrato come formattare la data in Excel con VBA Spero che questo articolo vi sia stato di grande aiuto. Non esitate a chiedere se avete domande sull'argomento.