VBA niz do danas | Pretvorite vrijednosti niza u datum u programu Excel VBA

Excel VBA niz do datuma

U Vba postoji metoda pomoću koje možemo pretvoriti zadani niz u datum, a metoda je poznata kao CDATE funkcija u vba, ovo je ugrađena funkcija u VBA i dijelovi potrebni za ovu funkciju su prvo pretvoriti niz u broj, a zatim pretvaramo zadani broj u datum. Format rezultata ovisi samo o formatu sistemskog datuma.

Jedan od uobičajenih problema s kojima se svi susrećemo s Excelom je "Datum i vrijeme", a često se pohranjuju kao tekstualne vrijednosti i u početku ostaju neprimijećeni. Ali kad se od njih zatraži da iskoriste to vrijeme, mi ćemo saznati da su te vrijednosti pohranjene kao tekst i da uopće ne znamo kako s njima postupati. "Datum i vrijeme" su dvije kombinirane stvari u jednom elementu, ali kad su te vrijednosti spremljene kao tekstualne vrijednosti, bolno je raditi s njima.

Kako pretvoriti nizove vrijednosti u datum?

Ovdje možete preuzeti ovaj VBA String to Date Excel predložak - VBA String to Date Excel Predložak

Primjer # 1

Jednom kada je VBA varijabla deklarirana i dodijeljena kao String, sve što je dodijeljeno toj varijabli tretirat će se samo kao niz. Za primjer pogledajte donji kod.

Kodirati:

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

U gornjoj varijabli koda "k" definiranoj kao tip podataka "String" i za ovu smo varijablu dodijelili vrijednost kao "10-21".

Ok, pokrenimo kôd i pogledajmo što ćemo dobiti u okviru za poruke u VBA.

Dobili smo vrijednost samo 10-21, ali obično su to vrijednosti, a ne vrijednosti niza. Dakle, iako je dodijeljeni tip podataka "String", i dalje možemo pretvoriti u datum pomoću funkcije pretvorbe tipa podataka CDATE VBA.

Kodirati:

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

U gore navedenom, prije nego što pokažemo rezultat varijable "k" u okviru za poruke dodijelili smo funkciju CDATE. Izvršena je mala prilagodba, da vidimo koliko velik utjecaj ima.

Sada bismo rezultat vidjeli kao "Datum", a ne više kao vrijednost "Niz".

Primjer # 2

Sada, pogledajte primjer dolje navedenog koda.

Kodirati:

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

Trenutno će gornji kod prikazati rezultat kao "43599" kako smo dodijelili gore.

Ali nakon što upotrijebimo funkciju CDATE, pretvorit će se u datumsku vrijednost.

Kodirati:

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

Rezultat nakon primjene funkcije CDATE je sljedeći.

Budući da je excel datum pohranio kao serijski broj, dodijeljeni nam serijski broj 43599 jednak je datumu 14.05.2019 kada se primjenjuje format datuma.

Također možemo primijeniti format na datum kao "DD-MMM-GGGG" za točno očitavanje datuma.

Kodirati:

 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 

U gore navedenom, proglasio sam jednu dodatnu varijablu za pohranu rezultata. Za ovu varijablu primijenio sam funkciju pretvorbe CDATE.

Dalje, koristio sam funkciju FORMAT za primjenu formata formata “DD-MMM-YYYY” i rezultat će biti kao što je prikazano u nastavku.

Ovim možemo jasno pročitati dio dana i mjesec. Ovisi i o formatu vašeg sistemskog datuma u Excelu, budući da je moj format sistemskog datuma bio "MM-DD-GGGG", tako se prikazivao, ali to ne bi trebalo predstavljati prepreku formatiranju.

Primjer # 3

Sada ćemo zapravo vidjeti kako su datumi oblikovani kao tekstualne vrijednosti u ćelijama radnog lista. Ispod je slika datuma pohranjenih kao tekst na radnom listu.

U stupcu A od A2 do A12 imamo vrijednosti koje gledaju datum, ali kada pogledamo karticu formata, prikazuje se format "Tekst". Sada moramo pretvoriti ove vrijednosti iz teksta u datum.

Ispod je kod koji sam napisao za pretvaranje tekstualno oblikovanih vrijednosti datuma u stvarne datume.

Kodirati:

 Sub String_To_Date2 () Dim k As Long 'Podaci se nalaze u više od jedne ćelije, pa treba petlju proći kroz svaku ćeliju' Open For Loop For k = 2 To 12 'Podaci počinju od 2. retka i završavaju u 12. redu, dakle 2 do 12 Ćelije (k, 2) .Vrijednost = CDate (Ćelije (k, 1) .Vrijednost) Sljedeća k Kraj Sub 

Ako pokrenete kod, dat će nam donji rezultat.

Stvari koje treba zapamtiti

  • CDATE je funkcija pretvorbe tipa podataka, ali se može koristiti za pretvorbu pohranjenog datuma VBA niza u stvarne vrijednosti datuma.
  • Rezultat formata funkcije CDATE ovisi samo o formatu sistemskog datuma.
  • Datumi se u Excelu pohranjuju kao serijski brojevi, pa je potrebno formatiranje da bi se prikazivali kao datumi.