Cadena VBA fins a la data | Converteix els valors de cadena en data a Excel VBA

Cadena Excel VBA fins a la data

A Vba hi ha un mètode mitjançant el qual podem convertir una cadena determinada en una data, i el mètode es coneix com a funció CDATE a vba, aquesta és una funció incorporada a VBA i les parts necessàries per a aquesta funció són primer convertir la cadena a un número i després convertim el número donat en una data. El format del resultat només depèn del format de data del sistema.

Un dels problemes més habituals que tots afrontem amb Excel és "Data i hora" i sovint s'emmagatzemen com a valors de text i passen desapercebuts inicialment. Però quan se’ls requereixi que utilitzin aquest temps, sabrem que aquests valors s’emmagatzemen com a text i no sabem com tractar-los en absolut. "Data i hora" són dues coses combinades en un element, però un cop emmagatzemats aquests valors com a valors de text, és difícil treballar.

Com es converteixen els valors de cadena en una data?

Podeu descarregar aquesta plantilla Excel de cadena VBA fins a la data aquí: plantilla Excel de cadena VBA fins a la data

Exemple 1

Un cop declarada i assignada la variable VBA com a Cadena, qualsevol cosa assignada a aquesta variable només es tractarà com a cadena. Per obtenir un exemple, mireu el codi següent.

Codi:

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

A la variable de codi anterior "k" definida com a tipus de dades "Cadena" i per a aquesta variable hem assignat el valor com a "10-21".

D’acord, executem el codi i veiem què rebem al quadre de missatges de VBA.

Tenim el valor només entre 10 i 21, però normalment aquests valors són una data, no valors de cadena. Així, tot i que el tipus de dades assignat és "Cadena", podem convertir-nos a la data utilitzant la funció de conversió de tipus de dades CDATE VBA.

Codi:

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

A l'anterior, abans de mostrar el resultat de la variable "k" al quadre de missatge, hem assignat la funció CDATE. Es fa un petit ajust, a veure quin impacte té.

Ara veuríem el resultat com a "Data" ja no com a valor "Cadena".

Exemple 2

Ara mireu el següent codi per obtenir un exemple.

Codi:

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

En aquest moment, el codi anterior mostraria el resultat com a "43599" tal com hem assignat més amunt.

Però un cop utilitzem la funció CDATE es convertirà en valor de data.

Codi:

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

El resultat després d’aplicar la funció CDATE és el següent.

Com que Excel emmagatzema la data com a números de sèrie, el número de sèrie assignat 43599 és igual a la data del 14/05/2019 en què s'aplica el format de data.

També podem aplicar el format a la data com a "DD-MMM-AAAA" per llegir la data amb precisió.

Codi:

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

A l'anterior, he declarat una variable addicional per emmagatzemar el resultat. Per a aquesta variable, he aplicat la funció de conversió CDATE.

A continuació, he utilitzat la funció FORMAT per aplicar el format del format "DD-MMM-AAAA" i el resultat serà el que es mostra a continuació.

Amb això, podem llegir clarament la part del dia i la part del mes. També depèn del format de data del vostre sistema en excel, ja que el meu format de data del sistema era "MM-DD-AAAA", es mostrava així, però això no hauria de ser un obstacle per al format.

Exemple 3

Ara veurem realment com es formaten les dates com a valors de text a les cel·les del full de treball. A continuació es mostra la imatge de les dates emmagatzemades com a text en un full de càlcul.

A la columna A de A2 a A12 tenim valors de data, però quan observem la pestanya de format mostra el format "Text". Ara hem de convertir aquests valors de text a data.

A continuació es mostra el codi que he escrit per convertir els valors de data amb format de text a dates reals.

Codi:

 Sub String_To_Date2 () Dim k Sempre que les dades es troben en més d'una cel·la, per tant, heu de fer un bucle a través de cada cel·la. Cel·les (k, 2) .Valor = CDate (Cel·les (k, 1) .Valor) Següent End Sub 

Si executeu el codi, ens donarà el resultat següent.

Coses que cal recordar

  • CDATE és una funció de conversió de tipus de dades, però es pot utilitzar per convertir la data emmagatzemada de cadenes VBA a valors de data reals.
  • El resultat del format de la funció CDATE només depèn del format de data del sistema.
  • Les dates s’emmagatzemen com a números de sèrie a Excel, de manera que cal formatar-les per mostrar-les com a dates.