VBA stygos iki šiol | Konvertuokite eilutės reikšmes į datas „Excel VBA“

„Excel VBA“ eilutė iki šiol

Vba yra metodas, per kurį mes galime konvertuoti nurodytą eilutę į datą, o metodas yra žinomas kaip CDATE funkcija vba, tai yra VBA integruota funkcija, o šiai funkcijai reikalingos dalys yra pirmiausia konvertuoti eilutę į skaičių, tada nurodytą skaičių paverčiame data. Rezultato formatas priklauso tik nuo sistemos datos formato.

Viena iš dažniausiai pasitaikančių problemų, su kuria susiduriame „Excel“, yra „Data ir laikas“. Jos dažnai saugomos kaip teksto vertės ir iš pradžių nepastebimos. Bet kai reikės išnaudoti tą laiką, sužinosime, kad tos vertės saugomos kaip tekstas ir visiškai nežinome, kaip su jomis elgtis. „Data ir laikas“ yra du elementai, sujungti viename elemente, tačiau kai tos vertės bus išsaugotos kaip teksto vertės, dirbti yra sunku.

Kaip konvertuoti eilutės reikšmes į datas?

Šį „VBA String to Date Excel“ šabloną galite atsisiųsti čia - „VBA String to Date Excel“ šablonas

1 pavyzdys

Kai VBA kintamasis bus paskelbtas ir priskirtas kaip eilutė, viskas, priskirta šiam kintamajam, bus traktuojama tik kaip eilutė. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

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

Pirmiau pateiktame kodo kintamajame „k“, kuris apibrėžiamas kaip „String“ duomenų tipas, ir šiam kintamajam priskyrėme vertę kaip „10-21“.

Gerai, paleiskime kodą ir pažiūrėkime, ką gauname VBA pranešimų laukelyje.

Vertę gavome tik kaip 10–21, bet paprastai šios vertės yra data, o ne eilutės reikšmės. Taigi, nors priskirtas duomenų tipas yra „String“, vis tiek galime konvertuoti į datą, naudodami duomenų tipo konvertavimo funkciją CDATE VBA.

Kodas:

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

Pirmiau, prieš parodydami kintamojo „k“ rezultatą pranešimo laukelyje, priskyrėme funkciją CDATE. Atliekamas nedidelis koregavimas, pažiūrėkime, kokį didelį poveikį jis daro.

Dabar matytume, kad rezultatas kaip „Data“ nebėra „Styginių“ reikšmė.

2 pavyzdys

Dabar pažiūrėkite į žemiau pateiktą kodą.

Kodas:

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

Šiuo metu aukščiau nurodytas kodas parodys rezultatą kaip „43599“, kaip priskyrėme aukščiau.

Bet kai mes naudosime CDATE funkciją, ji bus konvertuota į datos vertę.

Kodas:

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

Rezultatas pritaikius CDATE funkciją yra toks.

Kadangi „Excel“ išsaugojo datą kaip serijos numerius, mūsų priskirtas serijos numeris 43599 yra lygus 2019 05 14 datai, kai taikomas datos formatas.

Datą taip pat galime pritaikyti kaip „DD-MMM-YYYY“, kad tiksliai nuskaitytumėte datą.

Kodas:

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

Pirmiau aš deklaravau vieną papildomą kintamąjį rezultatui išsaugoti. Šiam kintamajam pritaikiau CDATE konvertavimo funkciją.

Tada aš naudoju FORMAT funkciją, kad pritaikyčiau formato „DD-MMM-YYYY“ formatą, o rezultatas bus toks, kaip parodyta žemiau.

Tai mes galime aiškiai perskaityti dienos ir mėnesio dalis. Tai taip pat priklauso nuo jūsų sistemos datos formato „Excel“, nes mano sistemos datos formatas buvo „MM-DD-YYYY“, jis buvo toks rodomas, bet tai neturėtų trukdyti formatuoti.

3 pavyzdys

Dabar iš tikrųjų pamatysime, kaip datos formatuojamos kaip teksto vertės darbalapio langeliuose. Žemiau pateikiamas datų, išsaugotų kaip darbalapio tekstas, vaizdas.

A stulpelyje nuo A2 iki A12 turime datos ieškančias reikšmes, tačiau, žiūrėdami į skirtuką formatas, rodomas „Teksto“ formatas. Dabar turime konvertuoti šias vertes iš teksto į datą.

Žemiau yra kodas, kurį parašiau, kad paverčiau teksto formato datos reikšmes faktinėmis datomis.

Kodas:

 Sub String_To_Date2 () Dim k As Long 'Duomenys yra daugiau nei vienoje langelyje, todėl reikia pereiti per kiekvieną langelį' Open For Loop For k = 2-12 'Duomenys prasideda nuo 2 eilutės ir baigiasi 12 eilutėje, taigi nuo 2 iki 12 Ląstelės (k, 2). Vertė = CDate (Ląstelės (k, 1). Vertė) Kitas k End Sub 

Jei paleisite kodą, tai suteiks mums žemiau pateiktą rezultatą.

Ką reikia atsiminti

  • CDATE yra duomenų tipo konvertavimo funkcija, tačiau ją galima naudoti norint konvertuoti VBA eilutės saugomą datą į faktines datos reikšmes.
  • Funkcijos CDATE rezultatas priklauso tik nuo sistemos datos formato.
  • Datos programoje „Excel“ saugomos kaip serijos numeriai, todėl norint jas rodyti kaip datas, reikia formatuoti.

$config[zx-auto] not found$config[zx-overlay] not found