Data formato VBA

Data in formato Excel VBA

Per formattare una data in VBA usiamo la funzione FORMAT incorporata stessa, prende l'input come formato della data e restituisce il formato desiderato richiesto, gli argomenti richiesti per questa funzione sono l'espressione stessa e il tipo di formato.

La formattazione di data e ora sono cose delicate in Excel e la stessa cosa si applica anche a VBA. La data e l'ora predefinite si basano sulla data di sistema su cui stiamo lavorando, che può variare da sistema a sistema. In questo articolo, ti mostreremo diverse tecniche per la formattazione delle date con i codici VBA.

Per modificare il formato della data con la codifica VBA, dobbiamo essere consapevoli di quali sono i formati della data e del suo impatto sulla data.

La tabella seguente mostra la diversa formattazione della data e i relativi codici.

Quindi, se tieni presente il grafico sopra, la formattazione della data tramite la codifica VBA non è affatto un compito difficile.

Come modificare il formato della data in VBA?

Di seguito sono riportati gli esempi del formato della data VBA di Excel.

Puoi scaricare questo modello Excel per data in formato VBA qui - Modello Excel per data in formato VBA

Esempio 1

Ad esempio, abbiamo la stessa data in più celle del foglio di lavoro come mostrato di seguito.

Ora applicheremo formati di data diversi per la stessa data per vedere l'impatto con codici di formato data diversi.

Innanzitutto, copia gli stessi dati anche nella colonna successiva per vedere l'impatto.

Per la prima data, ovvero la cella A1, applicheremo il formato "GG-MM-AAAA" .

Nel codice prima, dobbiamo selezionare la cella utilizzando l' oggetto RANGE .

Codice:

 Sub Date_Format_Example1 () Range ("A1") End Sub 

Poiché stiamo modificando il formato della data della cella, dobbiamo accedere alla proprietà " Formato numero " dell'oggetto RANGE.

Codice:

 Sub Date_Format_Example1 () Range ("A1"). NumberFormat End Sub 

Dopo aver effettuato l'accesso a " Formato numero " dobbiamo impostare il formato del numero inserendo il segno di uguale e applicare il codice di formato tra virgolette.

Codice:

 Sub Date_Format_Example1 () Range ("A1"). NumberFormat = "dd-mm-yyy" 'Questo cambierà la data a "23-10-2019" End Sub 

Quando eseguiamo questo codice, applicherà il formato numerico alla cella A1 come " GG-MM-AAA ".

Produzione:

Esempio n. 2

Allo stesso modo, ho applicato codici di formattazione diversi anche per altre celle e di seguito è riportato il codice VBA per te.

Codice:

Sub Date_Format_Example2 () Range ("A1"). NumberFormat = "dd-mm-yyy" "Questo cambierà la data in" 23-10-2019 "Range (" A2 "). NumberFormat =" ddd-mm-yyy " "Questa operazione cambierà la data in" Mercoledì 10-2019 "Intervallo (" A3 "). NumberFormat =" dddd-mm-aaaa "" Questa operazione cambierà la data in "Mercoledì-10-2019" Intervallo ("A4") .NumberFormat = "dd-mmm-yyy" 'Questo cambierà la data in "23-Oct-2019" Range ("A5"). NumberFormat = "dd-mmmm-yyy"' Questo cambierà la data in "23- Ottobre-2019 "Range (" A6 "). NumberFormat =" dd-mm-yy "" Questo cambierà la data in "23-10-19" Range ("A7"). NumberFormat = "ddd mmm yyyy" 'Questo cambierà la data in "Mer ott 2019 "Range (" A8 "). NumberFormat =" dddd mmmm yyyy "'Questa operazione cambierà la data in" Mercoledì ottobre 2019 "End Sub

Il risultato di questo codice sarà il seguente.

Produzione:

Modificare il formato della data utilizzando la funzione FORMAT

In VBA abbiamo una funzione chiamata FORMATO che può essere utilizzata per applicare il formato desiderato alla cella.

Dobbiamo solo specificare qual è il valore per "Espressione" e applicare il "Formato" di conseguenza.

Guarda il codice seguente per un esempio.

Codice:

 Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 Formato MsgBox (MyVal, "DD-MM-YYYY") End Sub 

Nel codice sopra, ho definito la variabile come variante (che può contenere qualsiasi valore).

Codice:

 Dim MyVal As Variant 

Successivamente per questa variabile, ho assegnato il valore come 43586.

Codice:

MyVal = 43586

Successivamente nella finestra del messaggio, ho mostrato il risultato della variabile, ma prima di mostrare il risultato abbiamo utilizzato la funzione " FORMAT " per formattare il valore della variabile " MyVal " e il formato è " DD-MM- AAAA ".

Codice:

Formato MsgBox (MyVal, "GG-MM-AAA")

Ok, eseguiamo il codice e vediamo il risultato nella finestra del messaggio in VBA.

Produzione:

Come puoi vedere sopra, il risultato è " 01-05-2019 ".

Ora ti starai chiedendo che abbiamo fornito il numero di serie ma il risultato mostra la data. Questo perché Excel memorizza la data come numeri di serie, quindi il valore 43586 è uguale alla data "01-05-2019" e se aumenti il ​​numero di 1, ad esempio 43587, la data sarà "02-05-2019".

Codice:

 Sub Date_Format_Example3() Dim MyVal As Variant MyVal = 43586 MsgBox Format(MyVal, "DD-MM-YYY") End Sub 

Things to Remember

  • The default date of your system will be applied to your excel as well.
  • Number Format property can be used to change the date format in VBA.
  • Using the FORMAT function, we can change the date format.
  • Excel stores date as serial numbers and if you apply date format it will show accordingly.