Az Excel VBA IsDate függvényének megértése

A VBA IsDate függvénye állítólag megmondja, hogy egy szöveges karakterlánc értelmezhető-e dátumként. Például a következő kifejezések mindegyike igaz:

IsDate (“2015.05.25.”)
IsDate (“január 16.”)
IsDate ("12-1")
IsDate ("12/1/15")
IsDate ("2/30")
IsDate ("30/2")

Az utolsó két példában figyelje meg, hogy az IsDate nem válogat a nap és a hónap sorrendjében. Mindkét karakterlánc dátumként értelmezhető, így az IsDate True értéket ad vissza (függetlenül a rendszerdátumformátum-beállításoktól).

Íme néhány információ a Microsoft támogatási cikkéből :

A VBA dátumfüggvényei IsDate, Format, CDate és CVDate az OLE Automationban (OleAut32.dll) található függvényt használnak. Ez a függvény megkeresi az összes lehetséges dátumformátumot úgy, hogy a dátumot jelentő karakterláncban minden elválasztott értéket tokenizál, és egy logikai értéket ad vissza, jelezve, hogy a bemenet dátumként ábrázolható-e.

Ezt fontos megjegyezni, amikor a függvényt olyan dátum értelmezésére használja, amely egy 2 számjegyű évet tartalmaz. A különböző területi beállítások különböző dátumformátumokat használnak (azaz mm/nn/éé, éé/hh/nn, DD HMM YY , YY HMM DD és így tovább), ezért a függvény minden pozícióban megpróbálja a számjegyeket, amíg a függvény érvényes dátumot talált, vagy kimerítette az összes lehetőséget.

Csak azért, mert az IsDate dátumként ismer fel egy karakterláncot, még nem jelenti azt, hogy a karakterlánc megbízhatóan dátummá alakítható. Egyes esetekben az eredmény nem egyértelmű. Például mi a helyzet ezzel a kifejezéssel?

IsDate ("29-20-01"

2001. február 29. nem érvényes dátum. Ez a kifejezés azonban igaz értéket ad vissza, mert 1929. február 1. (és 1929. január 2.) érvényes dátumok. És ugyanezek a dátumok 2029-ben is.

Az IsDate dokumentáció keresése üresen jött. A tesztelés alapján az IsDate a következők bármelyikét elfogadja elválasztó karakterként: perjel (/), kötőjel (-), vessző (,), pont (.) és szóköz.

Ezért a következő kifejezések mindegyike igaz értéket ad vissza:

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

De akkor van ez az anomália: A következő kifejezések True-t adnak vissza:

IsDate ("5.1.5")
IsDate(“5.1.05”)

Ez a kifejezés azonban kimondatlanul False értéket ad vissza:

IsDate(“2005.1.5.”)

Tegyük fel, hogy létrehozott egy felhasználói űrlapot egy InputBox-szal, ahol a felhasználó beír egy dátumot. Világosnak kell lennie, hogy az IsDate használata a bejegyzés érvényesítésére nem túl megbízható.

A dolgok még zavarosabbá válnak, ha rájössz, hogy az IsDate az időértékeket is lefedi. (Nincs megfelelő IsTime függvény.) Tehát a következő kifejezések mindegyike True-t ad vissza:

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

Ezek a kifejezések hamis értéket adnak vissza:

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

Fontos kiemelni, hogy az IsDate nem mutatja meg ezeket a furcsaságokat, amikor átadjuk a Range argumentumot. Például:

IsDate (Tartomány ("A1")

Úgy tűnik, hogy az IsDate tökéletesen megbízható a dátumot vagy időt tartalmazó cellák azonosításában. Nem azonosít például dátumként egy 5.1-et tartalmazó cellát. Ha a kódnak meg kell határoznia, hogy egy karakterlánc értelmezhető-e dátumként, a legjobb megoldás az, ha a karakterláncot egy cellába helyezi, majd kódot ír a cella tartalmának ellenőrzéséhez.


Hogyan akadályozható meg a Microsoft Word fájlok csak olvasható módban történő megnyitása a Windows rendszeren

Hogyan akadályozható meg a Microsoft Word fájlok csak olvasható módban történő megnyitása a Windows rendszeren

Hogyan lehet megakadályozni, hogy a Microsoft Word csak olvasható módban nyissa meg a fájlokat Windowson A Microsoft Word csak olvasható módban nyitja meg a fájlokat, így lehetetlenné teszi a szerkesztést? Ne aggódjon, a módszerek az alábbiakban találhatók

A Microsoft Word dokumentumok hibás nyomtatásának javítása

A Microsoft Word dokumentumok hibás nyomtatásának javítása

A nem megfelelő Microsoft Word dokumentumok nyomtatásának hibáinak kijavítása Meglehetősen gyakoriak a megváltozott betűtípusú, rendetlen bekezdésekkel, hiányzó szöveggel vagy elveszett tartalommal rendelkező Word dokumentumok nyomtatásának hibái. Azonban ne

Törölje a toll és a kiemelő rajzokat a PowerPoint diákon

Törölje a toll és a kiemelő rajzokat a PowerPoint diákon

Ha prezentáció közben a tollat ​​vagy a kiemelőt használta a PowerPoint diákra való rajzoláshoz, mentheti a rajzokat a következő bemutatóhoz, vagy törölheti őket, így a következő bemutatáskor tiszta PowerPoint diákkal kezdheti. Kövesse az alábbi utasításokat a toll- és kiemelőrajzok törléséhez: A vonalak törlése egyenként […]

A könyvtár tartalmának stílusa a SharePoint 2010-ben

A könyvtár tartalmának stílusa a SharePoint 2010-ben

A Stíluskönyvtár CSS-fájlokat, XSL-fájlokat, valamint előre meghatározott mesteroldalak, oldalelrendezések és vezérlők által használt képeket tartalmaz a SharePoint 2010-ben. A CSS-fájlok megkereséséhez a közzétételi webhely stíluskönyvtárában: Válassza a Webhelyműveletek→Nézet lehetőséget. A webhely összes tartalma. Megjelenik az oldal tartalma. A Style könyvtár a […]

Formázza a számokat ezrekben és milliókban az Excel-jelentésekben

Formázza a számokat ezrekben és milliókban az Excel-jelentésekben

Ne árassza el közönségét óriási számokkal. A Microsoft Excelben javíthatja irányítópultjai és jelentései olvashatóságát, ha a számokat több ezerben vagy millióban formázza.

SharePoint webhelyek megosztása és követése

SharePoint webhelyek megosztása és követése

Ismerje meg, hogyan használhatja a SharePoints közösségi hálózati eszközöket, amelyek lehetővé teszik az egyének és csoportok közötti kommunikációt, együttműködést, megosztást és kapcsolódást.

Dátumok konvertálása Julian-formátumba az Excelben

Dátumok konvertálása Julian-formátumba az Excelben

A Julian-dátumokat gyártási környezetekben gyakran használják időbélyegként és gyors hivatkozásként a tételszámhoz. Az ilyen típusú dátumkódolás lehetővé teszi a kiskereskedők, fogyasztók és szervizek számára, hogy azonosítsák a termék elkészítésének időpontját, és ezáltal a termék korát. A Julian-dátumot a programozásban, a katonaságban és a csillagászatban is használják. Különböző […]

Access Web App létrehozása

Access Web App létrehozása

Létrehozhat webalkalmazást az Access 2016-ban. Tehát mi az a webalkalmazás? Nos, a web azt jelenti, hogy online van, az alkalmazás pedig az „alkalmazás” rövidítése. Az egyéni webalkalmazás egy online adatbázis-alkalmazás, amely a felhőből, böngészővel érhető el. Ön elkészíti és karbantartja a webalkalmazást az asztali verzióban […]

Gyorsindító sáv a SharePoint 2010-ben

Gyorsindító sáv a SharePoint 2010-ben

A SharePoint 2010 legtöbb oldala a navigációs hivatkozások listáját jeleníti meg az oldal bal oldalán található Gyorsindító sávon. A Gyorsindító sáv hivatkozásokat jelenít meg a kiemelt webhelytartalomra, például listákra, könyvtárakra, webhelyekre és közzétételi oldalakra. A Gyorsindító sáv két nagyon fontos hivatkozást tartalmaz: Az összes webhelytartalom linkje: A […]

Mit jelentenek a Solver hibaüzenetek az Excelben?

Mit jelentenek a Solver hibaüzenetek az Excelben?

Egyszerű problémák esetén az Excelben található Megoldó rendszerint gyorsan megtalálja a célfüggvény optimális Megoldóváltozó-értékeit. Bizonyos esetekben azonban a Solver nehezen találja meg a Solver változó értékeit, amelyek optimalizálják a célfüggvényt. Ezekben az esetekben a Solver általában egy üzenetet vagy hibaüzenetet jelenít meg, amely leírja vagy megvitatja a […]