VBA „IsDate“ Kaip naudoti „Excel VBA IsDate“ funkciją?

„Excel VBA IsDate“ funkcija

IsDate yra VBA funkcija, tikrinanti, ar nurodyta reikšmė yra data, ar ne. Jei pateikiama vertė arba diapazono atskaitos vertė yra datos reikšmė, rezultatą gausime kaip „TRUE“, jei vertė nėra datos vertė, rezultatą gausime kaip „FALSE“. Taigi rezultatas yra BOOLEAN vertė, ty TIKRA arba NETIESA.

Žemiau yra „IsDate“ funkcijos sintaksė.

Išraiška yra ne kas kita, o vertė, kurią bandome patikrinti, ar tai data, ar ne.

Kaip naudotis VBA IsDate funkcija?

Šį „VBA IsDate Excel“ šabloną galite atsisiųsti čia - VBA „IsDate Excel“ šablonas

Mes patikrinsime, ar reikšmė „5.01.19“ yra datos vertė, ar ne.

Pirmiausia pradėkite „Excel“ makrokomandą.

Kodas:

 Sub IsDate_Example1 () End Sub 

Apibrėžkite kintamąjį, kad išsaugotumėte datos vertę, o kadangi vertė bus datos vertė, duomenų tipą priskirkite tik kaip „Data“.

Kodas:

 Sub IsDate_Example1 () Dim MyDate as Date End Sub 

Dabar priskirkite „5.1.19“ reikšmę kintamajam „MyDate“.

Kodas:

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

Dabar atidarykite pranešimų laukelį VBA

Kodas:

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

Šiame pranešimų laukelyje naudodami funkciją „IsDate“ patikrinsime, ar kintamojo „MyDate“ pateikta datos reikšmė yra data, ar ne. Pirmiausia atidarykite „IsDate“ funkciją.

Kodas:

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

Išraiška yra vertė, kurią bandome nustatyti, ar ji yra Data, ar ne. Kadangi kintamojo „MyDate“ reikšmę jau išsaugojome, pateikite tik kintamojo pavadinimą.

Kodas:

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

Gerai, dabar paleiskite kodą ir pamatykite, ką gauname pranešimų laukelyje.

Oho!!! Rezultatas TIKRA .

Jums gali būti įdomu, kaip ji atpažino vertę „5.1.19“ kaip datą.

Priežastis, kodėl jis grąžino rezultatą kaip TIKRA, nes kai žiūrite į nurodytą vertę „5.1.19“, tai yra trumpa datos „2019.01.05“ forma, todėl „Excel“ yra pakankamai geniali, kad pripažintų ją data, todėl rezultatas tiesa.

Dabar ateina keblus dalykas, nes tą pačią vertę, kurią mes padarysime, pakeisime trumpąją metų formą nuo 19 iki 2019 m.

Kodas:

 „Sub IsDate_Example1“ () „Dim MyDate“ kaip eilutė „MyDate“ = "2015 m. 5.1" MsgBox IsDate (MyDate) Pabaiga Sub 

Dabar paleiskite kodą ir pamatykite rezultatą.

Šį kartą rezultatas grąžintas kaip NETIESA, nes „dienos ir mėnesio“ datos dalis yra trumpa, bet metų dalis yra visa „YYYY“ forma, todėl ISDATE negali atpažinti, kad ji turi datą, todėl rezultatas yra NETIESA.

Dabar pažvelkite į žemiau pateiktą kodą.

Kodas:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "2019.01.05" MsgBox IsDate (MyDate) Pabaiga Sub 

Aš paminėjau visos dienos ir viso mėnesio formatą naudodamas 0, paleiskime kodą ir pamatysime „IsDate“ funkcijos rezultatą.

Šį kartą mes taip pat gavome rezultatą kaip FALSE .

Dabar pakeiskite kodą taip.

Kodas:

 Sub IsDate_Example1 () Dim MyDate as String MyDate = "2019.01.05" MsgBox IsDate (MyDate) Pabaiga Sub 

Vietoj taško (.) Kaip separatoriaus įvedėme priekinį pasvirąjį brūkšnį (/) kaip separatorių. Dabar paleiskite kodą ir pamatykite rezultatą.

Šį kartą rezultatą gavome TIKRĄ .

Dėl šios priežasties straipsnio pradžioje jums sakiau, kad „Data“ yra jautrus dalykas.

Dabar darysiu datą ir laiką kartu.

Kodas:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "2019.01.01 15:26:24" MsgBox IsDate (MyDate) Pabaiga Sub 

Tai, ką pridėjau aukščiau, yra laiko dalis „15:26:24“ prieš datą. Dabar paleiskite kodą ir pamatykite rezultatą.

Šį kartą per gavome rezultatą kaip TRUE , nes data ir laikas Excel yra tie patys dalykai ir saugomi kaip serijinių numerių. Visas skaičius nurodo datos dalį, o kableliai - laiko dalį.

Ką čia reikia atsiminti

  • „IsDate“ pateikia Būlio tipo rezultatą, ty „TRUE“ arba „FALSE“.
  • „IsDate“ galima tik kaip VBA funkciją.
  • Tik galiojančios suformatuotos datos yra laikomos data, kitaip jos bus laikomos teksto reikšmėmis, o rezultatas bus pateiktas kaip NETIESA.

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