VBA-kieli tähän mennessä - Muunna merkkijonojen arvot päivämääriksi Excel VBA: ssa

Excel VBA -merkkijono tasalla

Vba: ssa on menetelmä, jonka avulla voimme muuntaa annetun merkkijonon päivämääräksi, ja menetelmä tunnetaan vBA: ssa CDATE-funktiona, tämä on sisäänrakennettu toiminto VBA: ssa ja tämän toiminnon edellyttämät osat on ensin muunnettava merkkijono numero ja sitten muunnetaan annettu numero päivämääräksi. Tulosmuoto riippuu vain järjestelmän päivämäärämuodosta.

Yksi yleisimmistä ongelmista, joita me kaikki kohtaamme excelin kanssa, on "Päivämäärä ja aika", ja ne tallennetaan usein tekstiarvoina, ja ne jäävät huomaamatta aluksi. Mutta kun heidän on käytettävä sitä aikaa, opimme, että nämä arvot tallennetaan tekstinä, emmekä tiedä, miten niitä käsitellä ollenkaan. "Päivämäärä ja aika" ovat kaksi yhdistettyä asiaa yhdessä elementissä, mutta kun nämä arvot on tallennettu tekstiarvoiksi, on tuskallista työskennellä.

Kuinka muuntaa merkkijonoarvot päivämääräksi?

Esimerkki 1

Kun VBA-muuttuja on ilmoitettu ja määritetty merkkijonoksi, kaikkea muuttujalle osoitettua käsitellään vain merkkijonona. Katso esimerkiksi alla oleva koodi.

Koodi:

Alimerkkijono_To_Päivämäärä () Himmennä merkkijonona k = "10-21" MsgBox k Loppu Sub

Yllä olevassa koodissa muuttuja "k" määritellään "String" -tietotyypiksi, ja tälle muuttujalle olemme määrittäneet arvon "10-21".

Ok, ajetaan koodi ja katsotaan mitä saamme VBA: n viestiruudusta.

Saimme arvon vain 10-21, mutta yleensä nämä arvot ovat päivämäärä, ei merkkijonoja. Joten vaikka määritetty tietotyyppi on "String", voimme silti muuntaa päivämääräksi käyttämällä tietotyypin muunnosfunktiota CDATE VBA.

Koodi:

Alimerkkijono_To_Pvm () Himmennä merkkijono k = "10-21" MsgBox CDate (k) Lopeta ali

Edellä on määritetty CDATE-toiminto, ennen kuin näytämme muuttujan "k" tuloksen viestiruudussa. Pieni säätö tehdään, katsotaanpa, kuinka suuren vaikutuksen se tekee.

Nyt tulosta ei pidetä päivämääränä enää merkkijonona.

Esimerkki 2

Katso nyt esimerkki alla olevasta koodista.

Koodi:

Alimerkkijono_To_Pvm () Himmennä merkkijono k = 43599 MsgBox k Lopeta alim

Tässä vaiheessa yllä oleva koodi näyttäisi tuloksen olevan "43599", kuten edellä osoitimme.

Mutta kun käytämme CDATE-toimintoa, se muuntuu päivämääräarvoksi.

Koodi:

Alimerkkijono_To_Pvm () Hämärä k merkkijonona k = 43599 MsgBox CDate (k) Loppu Sub

Tulos CDATE-toiminnon soveltamisen jälkeen on seuraava.

Koska excel tallensi päivämäärän sarjanumeroina, määritetty sarjanumero 43599 on yhtä suuri kuin päiväys 05/14/2019, kun päivämäärämuotoa käytetään.

Voimme myös käyttää muotoa päivämäärään muodossa "PP-KK-VVVV" lukeaksesi päivämäärän tarkasti.

Koodi:

Alimerkkijono_To_Pvm1 () Himmennä merkkijono Dim Päivämääräarvo Päivämäärä k = 43599 Päivämääräarvo = CDate (k) MsgBox-muoto (Päivämääräarvo, "PP-KK-VVVV") Loppu

Edellä on ilmoitettu yksi ylimääräinen muuttuja tuloksen tallentamiseksi. Tälle muuttujalle olen soveltanut CDATE-muunnostoimintoa.

Seuraavaksi olen käyttänyt FORMAT-funktiota soveltamaan "PP-KK-VVVV" -muodon muotoa, ja tulos on seuraava.

Tämän avulla voimme selvästi lukea päivä- ja kuukausiosan. Se riippuu myös järjestelmän päivämäärämuodosta Excelissä. Koska järjestelmän päivämäärämuodoni oli ”KK-PP-VVVV”, se näytti tuollaiselta, mutta sen ei pitäisi olla esto muotoilulle.

Esimerkki 3

Näemme nyt, kuinka päivämäärät muotoillaan tekstiarvoina laskentataulukon soluissa. Alla on kuva taulukkoon tekstinä tallennetuista päivämääristä.

Sarakkeessa A välillä A2 - A12 meillä on päivämäärän näköisiä arvoja, mutta kun tarkastelemme Muoto-välilehteä, siinä näkyy "Teksti" -muoto. Nyt meidän on muunnettava nämä arvot tekstistä päivämäärään.

Alla on koodi, jonka olen kirjoittanut muuntamaan tekstimuotoiset päivämääräarvot todellisiksi päivämääriksi.

Koodi:

Alimerkkijono_To_Päivä2 () Himmennä k niin kauan 'Data on useammassa kuin yhdessä solussa, joten sinun on silmukoitava jokaisen solun läpi' Avoin silmukka k = 2 - 12 'Data alkaa 2. riviltä ja päättyy 12. rivillä, joten 2-12 Solut (k, 2). Arvo = CDate (solut (k, 1). Arvo) Seuraava k End Sub

Jos suoritat koodin, se antaa meille alla olevan tuloksen.

Muistettavaa

  • CDATE on tietotyypin muunnosfunktio, mutta sitä voidaan käyttää muuntaa VBA-merkkijonolle tallennettu päivämäärä todellisiksi päivämääräarvoiksi.
  • CDATE-toimintomuodon tulos riippuu vain järjestelmän päivämäärämuodosta.
  • Päivämäärät tallennetaan sarjanumeroina Exceliin, joten niiden näyttäminen päivämäärinä edellyttää muotoilua.

Mielenkiintoisia artikkeleita...