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

Excel VBA IsDate -toiminto

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

Alla on IsDate-funktion syntaksi.

Lauseke on vain arvo, jota yritämme testata, onko se päivämäärä vai ei.

Kuinka käyttää VBA IsDate -toimintoa?

Voit ladata tämän VBA IsDate Excel -mallin täältä - VBA IsDate Excel -malli

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

Käynnistä ensin 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 totta.

Nyt tulee hankala asia, sillä 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ÄTOSIIN, koska päivämäärä ”päivä ja kuukausi” 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, suoritetaan koodi ja katsotaan 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 = "05/01/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 = "05.01.2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

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

Myös tällä kertaa saimme tuloksen TOSIN, 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 TOSI tai EPÄTOSI.
  • IsDate on käytettävissä vain VBA-funktiona.
  • Vain kelvollisia muotoiltuja päivämääriä käsitellään päivämäärinä, muuten ne katsotaan tekstiarvoiksi ja palautetaan tulos vääriksi.

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