Come formattare la data con VBA in Excel (4 metodi)

  • Condividi Questo
Hugh West

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.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.