VBA IsDate - Kuinka käyttää Excel VBA IsDate -toimintoa?

Sisällysluettelo

Excel VBA IsDate -toiminto

IsDate on VBA-toiminto, joka testaa, onko annettu arvo päivämäärä vai ei. Jos toimitettu arvo tai alueen viitearvo on päivämääräarvo, tulokseksi saadaan TOSI, jos arvo ei ole päivämääräarvo, tulokseksi tulee FALSE. Joten tulos on BOOLEAN arvo eli TOSI tai EPÄTOSI.

Alla on IsDate-funktion syntaksi.

Lauseke ei ole muuta kuin arvo, jota yritämme testata, onko se päivämäärä vai ei.

Kuinka käyttää VBA IsDate -toimintoa?

Testataan, onko arvo “5.01.19” päivämääräarvo vai ei.

Tälle ensimmäiselle käynnistykselle Excel-makromenettely.

Koodi:

Sub IsDate_Example1 () End Sub

Määritä muuttuja päivämääräarvon tallentamiseksi, ja koska arvo on päivämääräarvo, määritä tietotyypiksi vain päivämäärä.

Koodi:

Sub IsDate_Example1 () Himmennä MyDate päivämäärän lopussa Sub

Määritä nyt arvon ”5.1.19” muuttujalle ”MyDate”.

Koodi:

Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" End Sub

Avaa viestiruutu VBA: ssa nyt.

Koodi:

Sub IsDate_Example1 () Himmennä MyDate päivämääränä MyDate = "5.1.19" MsgBox (End Sub

Tässä viestiruudussa testataan, onko muuttujan "MyDate" syötetty päivämääräarvo päivämäärä vai ei, käyttämällä "IsDate" -toimintoa. Avaa ensin “IsDate” -toiminto.

Koodi:

Sub IsDate_Example1 () Himmennä MyDate päivämääränä MyDate = "5.1.19" MsgBox IsDate (End Sub

Lauseke on arvo, jota testataan sen selvittämiseksi, onko se päivämäärä vai ei. Koska olemme jo tallentaneet arvon muuttujaan "MyDate", anna vain muuttujan nimi.

Koodi:

Sub IsDate_Example1 () Dim MyDate as Date MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub

Ok, suorita koodi ja katso mitä saamme viestiruudusta.

Vau!!! Tulos on TOSI .

Sinun on ihmeteltävä, kuinka se tunnusti arvon ”5.1.19” päivämääränä.

Syy siihen, miksi se on palauttanut tuloksen TOSIKSI, koska kun tarkastellaan annettua arvoa "5.1.19", se on lyhyt muoto päivämäärästä "05.01.2019", joten excel on riittävän loistava tunnistamaan sen päivämääräksi, joten tulos on TOSI.

Nyt tulee hankala asia, samalla arvolla, mitä teemme, muutamme vuoden lyhyen muodon 19: stä 2019: een.

Koodi:

Sub IsDate_Example1 () Dim MyDate as String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub

Suorita nyt koodi ja katso tulos.

Tällä kertaa se on palauttanut tuloksen epätosi, koska päivämäärän "päivä ja kuukausi" -osa on lyhyessä muodossa, mutta vuosiosa on muodossa "VVVV", joten ISDATE ei voi tunnistaa, että sillä on päivämäärä, joten tulos on EPÄTOSI.

Katso nyt alla oleva koodi.

Koodi:

Sub IsDate_Example1 () Dim MyDate as String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub

Olen maininnut koko päivän ja koko kuukauden muodon käyttämällä 0. Käynnistetään koodi ja nähdään IsDate-funktion tulos.

Tällä kertaa myös menemme saimme tuloksen FALSE .

Vaihda nyt koodi seuraavasti.

Koodi:

Sub IsDate_Example1 () Dim MyDate as String MyDate = "01.05.2019" MsgBox IsDate (MyDate) End Sub

Pisteen (.) Sijasta erottimeksi olemme syöttäneet erottimeksi eteenpäin viivan (/). Suorita nyt koodi ja katso tulos.

Tällä kertaa saimme tuloksen TOSI .

Tästä syystä olen sanonut artikkelin alussa, että "Päivämäärä" on arkaluonteinen asia.

Aion nyt yhdistää päivämäärä ja aika yhdessä.

Koodi:

Sub IsDate_Example1 () Dim MyDate as String MyDate = "01.01.2019 15:26:24" MsgBox IsDate (MyDate) End Sub

Mitä olen lisännyt yllä, on päivämäärän edessä olevan ”15:26:24” -ajan osa. Suorita nyt koodi ja katso tulos.

Myös tällä kertaa saimme tuloksen TOSI, koska excelissä DATE & TIME on samat asiat ja ne on tallennettu sarjanumeroina. Koko luku edustaa päivämääräosaa ja desimaalit tarkoittavat aikaosuutta.

Muistettavaa täällä

  • IsDate palauttaa Boolen -tyyppisen tuloksen, eli joko TOSI tai EPÄTOSI.
  • IsDate on käytettävissä vain VBA-funktiona.
  • Vain kelvollisia muotoiltuja päivämääriä pidetään päivämäärinä, muuten se käsittelee tekstiarvoja ja palauttaa tuloksen epätosi.

Mielenkiintoisia artikkeleita...