Stringa VBA fino ad oggi

Stringa VBA di Excel fino ad oggi

In Vba esiste un metodo attraverso il quale possiamo convertire una data stringa in una data e il metodo è noto come funzione CDATE in vba, questa è una funzione incorporata in VBA e le parti richieste per questa funzione sono prima di convertire la stringa in un numero e poi convertiamo il numero dato in una data. Il formato del risultato dipende solo dal formato della data di sistema.

Uno dei problemi comuni che tutti dobbiamo affrontare con Excel è "Data e ora" e spesso vengono memorizzati come valori di testo e inizialmente passano inosservati. Ma quando viene richiesto loro di utilizzare quel tempo, sapremo che quei valori sono memorizzati come testo e non sapremo affatto come gestirli. "Data e ora" sono due cose combinate in un unico elemento, ma una volta che quei valori sono memorizzati come valori di testo è difficile lavorare con loro.

Come convertire i valori di stringa alla data?

Puoi scaricare questa stringa VBA per data modello Excel qui - Stringa VBA per data modello Excel

Esempio 1

Una volta che la variabile VBA è stata dichiarata e assegnata come stringa, qualsiasi cosa assegnata a quella variabile verrà considerata solo come stringa. Per un esempio, guarda il codice seguente.

Codice:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub 

Nel codice precedente la variabile “k” definita come tipo di dati “String” e per questa variabile abbiamo assegnato il valore “10-21”.

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

Abbiamo ottenuto solo il valore 10-21, ma di solito questi valori sono una data, non valori stringa. Quindi, anche se il tipo di dati assegnato è "String", possiamo ancora eseguire la conversione alla data utilizzando la funzione di conversione del tipo di dati CDATE VBA.

Codice:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub 

In precedenza, prima di mostrare il risultato della variabile “k” nella finestra di messaggio, abbiamo assegnato la funzione CDATE. Viene fatto un piccolo aggiustamento, vediamo quanto grande è l'impatto.

Ora vedremmo il risultato come "Data" non più come valore "Stringa".

Esempio n. 2

Ora guarda il codice seguente per un esempio.

Codice:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub 

A questo punto nel tempo sopra il codice mostrerebbe il risultato come "43599" come abbiamo assegnato sopra.

Ma una volta che usiamo la funzione CDATE, verrà convertita in valore di data.

Codice:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub 

Il risultato dopo aver applicato la funzione CDATE è il seguente.

Poiché Excel ha memorizzato la data come numeri di serie, il numero di serie 43599 assegnato è uguale alla data 14/05/2019 quando viene applicato il formato della data.

Possiamo anche applicare il formato alla data come "GG-MMM-AAAA" per leggere la data con precisione.

Codice:

 Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) Formato MsgBox (DateValue, "DD-MMM-YYYY") End Sub 

In quanto sopra, ho dichiarato una variabile extra per memorizzare il risultato. Per questa variabile, ho applicato la funzione di conversione CDATE.

Successivamente, ho utilizzato la funzione FORMAT per applicare il formato del formato "GG-MMM-AAAA" e il risultato sarà come mostrato di seguito.

Con questo, possiamo leggere chiaramente la fascia oraria e la parte del mese. Dipende anche dal formato della data del sistema in Excel, poiché il formato della data del mio sistema era "MM-GG-AAAA" veniva visualizzato in questo modo ma non dovrebbe essere un ostacolo alla formattazione.

Esempio n. 3

Ora vedremo effettivamente come le date vengono formattate come valori di testo nelle celle del foglio di lavoro. Di seguito è riportata l'immagine delle date memorizzate come testo in un foglio di lavoro.

Nella colonna A da A2 a A12 abbiamo valori di ricerca della data ma quando guardiamo la scheda formato mostra il formato "Testo". Ora dobbiamo convertire questi valori dal testo alla data.

Di seguito è riportato il codice che ho scritto per convertire i valori di data formattati in testo in date effettive.

Codice:

 Sub String_To_Date2 () Dim k As Long 'I dati sono in più di una cella, quindi è necessario scorrere ogni cella' Open For Loop For k = 2 To 12 'I dati iniziano dalla seconda riga e terminano alla dodicesima riga, quindi da 2 a 12 Cells (k, 2) .Value = CDate (Cells (k, 1) .Value) Next k End Sub 

Se esegui il codice, ci darà il risultato seguente.

Cose da ricordare

  • CDATE è una funzione di conversione del tipo di dati ma può essere utilizzata per convertire la data memorizzata della stringa VBA in valori di data effettivi.
  • Il risultato del formato della funzione CDATE dipende solo dal formato della data di sistema.
  • Le date vengono memorizzate come numeri di serie in Excel, quindi è necessaria la formattazione per mostrarle come date.