VBA string tänaseni | Stringi väärtuste teisendamine kuupäevaks Exceli VBA-s

Exceli VBA string kuni kuupäevani

Vba-s on meetod, mille abil saame antud stringi teisendada kuupäevaks, ja meetodit nimetatakse vba-s CDATE-funktsiooniks, see on VBA-s sisseehitatud funktsioon ja selle funktsiooni jaoks vajalikud osad on esmalt stringi teisendamine number ja teisendame siis antud numbri kuupäevaks. Tulemuse vorming sõltub ainult süsteemi kuupäeva vormingust.

Üks levinumaid probleeme, millega Exceliga kõik silmitsi seisame, on „Kuupäev ja kellaaeg“ ning need salvestatakse sageli tekstiväärtustena ja jäävad esialgu märkamatuks. Kuid kui nad peavad seda aega kasutama, saame teada, et need väärtused on salvestatud tekstina ja ei tea, kuidas nendega üldse hakkama saada. „Kuupäev ja kellaaeg“ on kaks elementi, mis on ühes elemendis ühendatud, kuid kui need väärtused on tekstiväärtustena salvestatud, on nendega töötamine valus.

Kuidas teisendada stringiväärtused kuupäevaks?

Selle VBA stringi kuupäevaga Exceli malli saate alla laadida siit - VBA stringi kuupäeva Exceli mall

Näide 1

Kui VBA muutuja on deklareeritud ja määratud stringiks, käsitletakse sellele muutujale määratud kõike ainult stringina. Näite saamiseks vaadake allolevat koodi.

Kood:

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

Ülaltoodud koodimuutuja “k” on määratletud kui stringi andmetüüp ja selle muutuja jaoks oleme määranud väärtuse “10–21”.

Ok, käivitame koodi ja vaatame, mida saame VBA teatekastist.

Saime väärtuseks ainult 10–21, kuid tavaliselt on need väärtused kuupäev, mitte stringiväärtused. Ehkki määratud andmetüüp on „String“, saame siiski andmetüübi teisendamise funktsiooni CDATE VBA abil kuupäevaks teisendada.

Kood:

 Alamstring_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) Lõpp alam 

Eespool kirjeldatuna, enne kui näitame muutuja “k” tulemust teatekastis, on meile määratud funktsioon CDATE. Tehakse väike korrigeerimine, vaatame, kui suurt mõju see avaldab.

Nüüd näeksime tulemust kui kuupäeva, mitte enam stringi väärtust.

Näide 2

Nüüd vaadake näite saamiseks allpool olevat koodi.

Kood:

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

Sel hetkel näitab ülaltoodud kood tulemust kui „43599”, nagu me eespool määrasime.

Kuid kui kasutame funktsiooni CDATE, teisendatakse see kuupäeva väärtuseks.

Kood:

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

Tulemus pärast funktsiooni CDATE rakendamist on järgmine.

Kuna Excel salvestas kuupäeva seerianumbritena, on meie määratud seerianumber 43599 võrdne kuupäevaga 05/14/2019, kui kuupäevavormingut rakendatakse.

Kuupäeva täpseks lugemiseks võime vormingut kuupäevale rakendada ka „PP-KK-AAAA”.

Kood:

 Alamstring_To_Date1 () Dim k Stringiks Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBoxi vorming (DateValue, "DD-MMM-YYYY") Lõpp alam 

Eelnevas olen deklareerinud ühe lisamuutuja tulemuse salvestamiseks. Selle muutuja jaoks olen rakendanud CDATE teisendusfunktsiooni.

Järgmisena olen kasutanud funktsiooni FORMAT, et rakendada vormingut „PP-KK-AAAA” ja tulemus on selline, nagu allpool näidatud.

Selle abil saame selgelt lugeda päeva- ja kuuosa. See sõltub ka teie süsteemi kuupäevavormingust excelis, kuna minu süsteemi kuupäevavorming oli “KK-PP-AAAA”, näidati seda nii, kuid see ei tohiks vormindamist takistada.

Näide # 3

Nüüd näeme tegelikult, kuidas kuupäevad vormindatakse töölehe lahtrites tekstiväärtustena. Allpool on pilt töölehele tekstina salvestatud kuupäevadest.

Veerus A vahemikust A2 kuni A12 on meil kuupäeva otsimise väärtused, kuid kui vaatame vormingu vahekaarti, näitab see vormingut "Tekst". Nüüd peame need väärtused teisendama tekstist kuupäevaks.

Allpool on kood, mille olen kirjutanud teksti vormindatud kuupäevaväärtuste teisendamiseks tegelikeks kuupäevadeks.

Kood:

 Alamstring_To_Date2 () Dim k As Long 'Andmeid on rohkem kui ühes lahtris, seega tuleb silmus läbi viia iga lahtri kaudu' Open For Loop For k = 2 kuni 12 'Andmed algavad 2. reast ja lõpevad 12. real, seega 2 kuni 12 Lahtrid (k, 2). Väärtus = CDate (Lahtrid (k, 1). Väärtus) Järgmine k Lõpp alam 

Kui käivitate koodi, annab see meile järgmise tulemuse.

Asjad, mida meeles pidada

  • CDATE on andmetüübi teisendamise funktsioon, kuid seda saab kasutada VBA stringide salvestatud kuupäeva teisendamiseks tegelikeks kuupäeva väärtusteks.
  • Funktsiooni CDATE tulemus sõltub ainult süsteemi kuupäeva vormingust.
  • Kuupäevad salvestatakse Excelis seerianumbritena, nii et kuupäevana kuvamiseks on vaja vormindamist.