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, upoznat ćemo da su te vrijednosti pohranjene kao tekst i da uopće ne znamo kako s njima postupati. "Datum i vrijeme" dvije su kombinirane stvari u jednom elementu, ali kad se te vrijednosti pohrane kao tekstualne vrijednosti, mučno je raditi s njima.

Kako pretvoriti nizove vrijednosti u datum?

Primjer # 1

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

Kodirati:

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

U gore navedenom kodu varijabla "k" definirana je kao vrsta podataka "String", a 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

U ovom trenutku vremena gornji kod bi prikazao rezultat kao "43599", kao što smo dodijelili gore.

Ali kad jednom upotrijebimo funkciju CDATE, ona će se pretvoriti 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 pohranio datum kao serijski broj, dodijeljeni nam serijski broj 43599 jednak je datumu 14.05.2019 kada je primijenjen 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”, a rezultat će biti kao što je prikazano u nastavku.

Ovim možemo jasno pročitati dio dana i mjesec. Ovisi i o formatu datuma vašeg sustava u Excelu. Budući da je moj format sistemskog datuma bio "MM-DD-GGGG", prikazivao se tako, ali to ne bi trebalo biti prepreka 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. reda 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 kôd, dat će nam sljedeći 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.

Zanimljivi članci...