Excel VBA IsDate -funktion ymmärtäminen

VBA:n IsDate-funktio oletettavasti kertoo, voidaanko tekstimerkkijono tulkita päivämääräksi. Esimerkiksi kaikkien seuraavien lausekkeiden arvo on tosi:

IsDate ("25.5.2015")
IsDate ("16. tammikuuta")
IsDate("12-1")
IsDate("12/1/15")
IsDate("2/30")
IsDate("30/2")

Kahdessa viimeisessä esimerkissä huomaa, että IsDate ei ole nirso päivän ja kuukauden järjestyksen suhteen. Molemmat merkkijonot voidaan tulkita päivämääräksi, joten IsDate palauttaa True (riippumatta järjestelmän päivämäärämuoto-asetuksista).

Tässä on tietoja Microsoftin tukiartikkelista :

VBA-päivämääräfunktiot IsDate, Format, CDate ja CVDate käyttävät funktiota, joka löytyy OLE Automationista (OleAut32.dll). Tämä funktio etsii kaikista mahdollisista päivämäärämuodoista tokenisoimalla jokaisen erotetun arvon päivämäärää edustavassa merkkijonossa ja palauttaa Boolen arvon, joka osoittaa, voidaanko syöte esittää päivämääränä.

Tämä on tärkeää muistaa, kun toimintoa käytetään tulkitsemaan päivämäärää, joka sisältää 2-numeroisen vuoden. Eri kieliasetukset käyttävät erilaisia ​​päivämäärämuotoja (eli kk/pp/vv, vv/kk/pp, " DD MMM YY " , " YY MMM DD " ja niin edelleen) ja siksi toiminto yrittää numeroita kaikissa paikoissa, kunnes toiminto on löytänyt kelvollisen päivämäärän tai käyttänyt kaikki mahdollisuudet.

Se, että IsDate tunnistaa merkkijonon päivämääräksi, ei tarkoita, että merkkijono voidaan luotettavasti muuntaa päivämääräksi. Joissakin tapauksissa tulos on epäselvä. Entä esimerkiksi tämä ilmaus?

IsDate ("29-2-01"

29. helmikuuta 2001 ei ole kelvollinen päivämäärä. Tämä lauseke palauttaa kuitenkin arvon Tosi, koska 1. helmikuuta 1929 (ja 2. tammikuuta 1929) ovat kelvollisia päivämääriä. Ja niin ovat samat päivämäärät vuonna 2029.

IsDate-dokumentaation haku tuli tyhjäksi. Testauksen perusteella IsDate hyväksyy minkä tahansa seuraavista erotinmerkeiksi: kauttaviiva (/), yhdysmerkki (-), pilkku (,), piste (.) ja välilyönti.

Siksi kaikki seuraavat lausekkeet palauttavat True:

IsDate("5.1")
IsDate("30 6")
IsDate("30,6")
IsDate("1/2")

Mutta sitten on tämä poikkeama: Seuraavat lausekkeet palauttavat True:

IsDate("5.1.5")
IsDate("5.1.05")

Tämä lauseke palauttaa kuitenkin epäselvästi False:

IsDate("5.1.2005")

Oletetaan, että loit käyttäjälomakkeen, jossa on InputBox, johon käyttäjä syöttää päivämäärän. Pitäisi olla selvää, että IsDate-toiminnon käyttäminen merkinnän vahvistamiseen ei ole kovin luotettavaa.

Asiat muuttuvat vielä hämmentävämmiksi, kun huomaat, että IsDate kattaa myös aika-arvot. (Ei ole vastaavaa IsTime-funktiota.) Joten kaikki seuraavat lausekkeet palauttavat True:

IsDate("4:45")
IsDate("4.45")
IsDate("4 45")
IsDate ("4/45")
IsDate("23:59")

Nämä lausekkeet palauttavat False:

IsDate("4:60")
IsDate("24.45")

On tärkeää huomauttaa, että IsDate ei osoita kaikkia näitä omituisuuksia, kun ohitat Range-argumentin. Esimerkiksi:

IsDate(alue("A1")

Näyttää siltä, ​​​​että IsDate on täysin luotettava tunnistamaan soluja, jotka sisältävät päivämäärän tai ajan. Se ei esimerkiksi tunnista solua, joka sisältää päivämääränä 5.1:n. Jos koodisi on määritettävä, voidaanko merkkijono tulkita päivämääräksi, paras ratkaisu on laittaa merkkijono soluun ja kirjoittaa sitten koodi tarkistaaksesi solun sisällön.


Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]