Niz VBA do datuma | Pretvori nizovne vrednosti v datum v Excelu VBA

Excel VBA niz do datuma

V Vba obstaja metoda, s pomočjo katere lahko dani niz pretvorimo v datum, metoda pa je vba znana kot funkcija CDATE, to je vgrajena funkcija v VBA in deli, ki so potrebni za to funkcijo, najprej pretvorijo niz v število in nato dano število pretvorimo v datum. Oblika rezultata je odvisna samo od oblike sistemskega datuma.

Ena najpogostejših težav, s katerimi se pri Excelu srečujemo, je »Datum in čas«, ki so pogosto shranjene kot besedilne vrednosti in so na začetku neopažene. Ko pa bodo morali uporabiti ta čas, bomo spoznali, da so te vrednosti shranjene kot besedilo in sploh ne vedo, kako z njimi ravnati. »Datum in čas« sta dve združeni stvari v enem elementu, toda ko so te vrednosti shranjene kot besedilne vrednosti, je z njimi težko delati.

Kako pretvoriti nizovne vrednosti v datum?

To predlogo VBA String to Date Excel lahko prenesete tukaj - Predloga VBA String to Date Excel

Primer # 1

Ko je spremenljivka VBA razglašena in dodeljena kot niz, bo vse, kar je dodeljeno tej spremenljivki, obravnavano samo kot niz. Za primer si oglejte spodnjo kodo.

Koda:

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

V zgornji spremenljivki kode, ki je definirana kot podatkovni tip "String", smo tej vrednosti pripisali vrednost "10-21".

Ok, zaženimo kodo in poglejmo, kaj bomo dobili v polju za sporočila v VBA.

Vrednost smo dobili samo kot 10–21, vendar so te vrednosti običajno datum in ne nizne vrednosti. Kljub temu, da je dodeljena vrsta podatkov »String«, lahko še vedno pretvorimo datum z uporabo funkcije pretvorbe podatkov CDATE VBA.

Koda:

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

V zgornjem smo, preden v oknu za sporočila prikažemo rezultat spremenljivke "k", dodelili funkcijo CDATE. Izvedena je majhna prilagoditev, poglejmo, kako velik vpliv ima.

Zdaj bi rezultat videli kot »Datum« in ne več kot vrednost »Niz«.

2. primer

Zdaj si oglejte spodnjo kodo za primer.

Koda:

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

V tem trenutku bi zgornja koda prikazala rezultat kot »43599«, kot smo dodelili zgoraj.

Ko pa uporabimo funkcijo CDATE, se ta pretvori v datumsko vrednost.

Koda:

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

Rezultat po uporabi funkcije CDATE je naslednji.

Ker je excel datum shranil kot serijske številke, je naša dodeljena serijska številka 43599 enaka datumu 14.05.2019, ko je uporabljena oblika datuma.

Za natančen odčitek datuma lahko datum uporabimo tudi kot »DD-MMM-LLLL«.

Koda:

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

V zgoraj navedenem sem navedel eno dodatno spremenljivko za shranjevanje rezultata. Za to spremenljivko sem uporabil funkcijo pretvorbe CDATE.

Nato sem s funkcijo FORMAT uporabil obliko zapisa oblike »DD-MMM-LLLL«, rezultat pa bo prikazan spodaj.

S tem lahko jasno preberemo del dneva in mesec. Prav tako je odvisno od oblike sistemskega datuma v Excelu, saj je bila oblika sistemskega datuma »MM-DD-LLLL«, se je tako prikazovala, vendar to ne bi smelo biti ovira za formatiranje.

3. primer

Zdaj bomo dejansko videli, kako so datumi oblikovani kot besedilne vrednosti v celicah delovnega lista. Spodaj je slika datumov, shranjenih kot besedilo na delovnem listu.

V stolpcu A od A2 do A12 imamo vrednosti, ki gledajo po datumu, a ko pogledamo zavihek oblike, se prikaže oblika "Besedilo". Zdaj moramo te vrednosti pretvoriti iz besedila v datum.

Spodaj je koda, ki sem jo napisal za pretvorbo besedilno oblikovanih datumskih vrednosti v dejanske datume.

Koda:

 Sub String_To_Date2 () Dim k As Long 'Podatki so v več celicah, zato je treba skozi vsako celico zanko' Open For Loop For k = 2 To 12 'Podatki se začnejo v 2. vrstici in končajo v 12. vrstici, torej od 2 do 12 Celice (k, 2) .Vrednost = CDate (Celice (k, 1) .Value) Naslednji k End Sub 

Če zaženete kodo, bomo dobili spodnji rezultat.

Stvari, ki si jih je treba zapomniti

  • CDATE je funkcija pretvorbe podatkovnega tipa, vendar se lahko uporablja za pretvorbo shranjenega datuma niza VBA v dejanske vrednosti datuma.
  • Rezultat oblike zapisa CDATE je odvisen samo od oblike sistemskega datuma.
  • Datumi se v Excelu shranijo kot serijske številke, zato je formatiranje potrebno, da se prikažejo kot datumi.