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

Lang L: none (table-of-contents)

Exceli VBA string kuni kuupäevani

Vba-s on meetod, mille abil saame antud stringi teisendada kuupäevaks, ja meetodit tuntakse vba-s kui CDATE-funktsiooni, 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ärkamata. 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 ühendatud elementi ühes elemendis, kuid kui need väärtused on tekstiväärtustena salvestatud, on nendega töötamine piin.

Kuidas teisendada stringiväärtused kuupäevaks?

Näide 1

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

Kood:

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

Ülaltoodud koodis määratletakse muutuja „k” andmetüübiks „String” 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üübiks 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

Enne ülalnimetatut oleme muutuja “k” tulemuse kuvamiseks teatekastis määranud funktsiooni 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

Siinkohal näitaks kood ülal, et tulemus oleks väärtuseks 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

Pärast funktsiooni CDATE rakendamist on tulemus järgmine.

Kuna excel salvestas kuupäeva seerianumbritena, võrdub meie määratud seerianumber 43599 kuupäeva vormingu rakendamisel kuupäevaga 14.05.2019.

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

Kood:

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

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

Järgmisena olen vormingu „PK-KK-AAAA” vormingu rakendamiseks kasutanud funktsiooni FORMAT 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äitas see 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 vahekaarti Vorming, 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.

Huvitavad Artiklid...