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 na začetku ostanejo 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 sestavljeni stvari v enem elementu, toda ko so te vrednosti shranjene kot besedilne vrednosti, je težko delati z njimi.

Kako pretvoriti nizovne vrednosti v datum?

Primer # 1

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

Koda:

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

V zgornji kodi je spremenljivka "k" definirana kot podatkovni tip "String" in za to spremenljivko smo vrednost dodelili kot "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 podatkovnega tipa CDATE VBA.

Koda:

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

V zgornjem, preden pokažemo rezultat spremenljivke "k" v oknu za sporočilo, smo 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 določili zgoraj.

Ko pa uporabimo funkcijo CDATE, se bo pretvorila 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 zgornjem sem navedel eno dodatno spremenljivko za shranjevanje rezultata. Za to spremenljivko sem uporabil funkcijo pretvorbe CDATE.

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

S tem lahko jasno preberemo del dneva in mesec. Odvisno je tudi od oblike sistema v Excelu. Ker je bila moja oblika sistemskega datuma »MM-DD-LLLL«, se je kazalo tako, 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, ko pa 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 jih je treba prečkati skozi vsako celico' 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, nam bo dala 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 funkcije CDATE je odvisen samo od oblike sistemskega datuma.
  • Datumi se v Excelu shranijo kot serijske številke, zato je formatiranje potrebno, da jih prikažete kot datume.

Zanimive Članki...