Pochopení funkce Excel VBA IsDate

Funkce IsDate VBA vám údajně říká, zda lze textový řetězec interpretovat jako datum. Například všechny následující výrazy se vyhodnotí jako True:

IsDate(“25. 5. 2015”)
IsDate(“16. ledna”)
IsDate(“12-1”)
IsDate(“12/1/15”)
IsDate(“2/30”)
IsDate(“30/2”)

V posledních dvou příkladech si všimněte, že IsDate není vybíravé, pokud jde o pořadí dne a měsíce. Oba tyto řetězce lze interpretovat jako datum, takže IsDate vrátí True (bez ohledu na vaše systémové nastavení formátu data).

Zde je několik informací z článku podpory společnosti Microsoft :

Funkce data VBA IsDate, Format, CDate a CVDate využívají funkci nalezenou v OLE Automation (OleAut32.dll). Tato funkce prohledává všechny možné formáty data tokenizací každé z oddělených hodnot v řetězci představujícím datum a vrací booleovskou hodnotu označující, zda lze vstup reprezentovat jako datum.

To je důležité mít na paměti, když používáte funkci k interpretaci data, které obsahuje 2 číslice roku. Různá národní prostředí používají různé formáty data (tj. mm/dd/rr, rr/mm/dd, DD MMM RR , RR MMM DD atd.), a proto funkce zkouší číslice na všech pozicích, dokud funkce našla platné datum nebo vyčerpala všechny možnosti.

To, že IsDate rozpoznává řetězec jako datum, neznamená, že řetězec lze spolehlivě převést na datum. V některých případech je výsledek nejednoznačný. Co například tento výraz?

IsDate("29-Feb-01")

29. únor 2001 není platné datum. Tento výraz však vrátí hodnotu True, protože 1. únor 1929 (a 2. leden 1929) jsou platná data. A tak jsou stejná data v roce 2029.

Hledání dokumentace IsDate bylo prázdné. Na základě testování přijímá IsDate jako oddělovací znaky libovolné z následujících znaků: lomítko (/), spojovník (-), čárku (,), tečku (.) a mezeru.

Proto všechny následující výrazy vrátí hodnotu True:

IsDate(“5.1”)
IsDate(“30 6”)
IsDate(“30,6”)
IsDate(“1/2”)

Ale pak je tu tato anomálie: Následující výrazy vrátí True:

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

Neexplicitně však tento výraz vrací False:

IsDate(“5.1.2005”)

Předpokládejme, že jste vytvořili UserForm s InputBox, kde uživatel zadá datum. Mělo by být jasné, že použití IsDate k ověření záznamu není příliš spolehlivé.

Věci se ještě více zamotají, když si uvědomíte, že IsDate zahrnuje také časové hodnoty. (Neexistuje žádná odpovídající funkce IsTime.) Takže všechny následující výrazy vracejí True:

IsDate(“4:45”)
IsDate(“4.45”)
IsDate(“4 45”)
IsDate(“4/45”)
IsDate(“23:59”)

Tyto výrazy vrací False:

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

Je důležité zdůraznit, že IsDate nevykazuje všechny tyto zvláštnosti, když předáte argument Range. Například:

IsDate(Rozsah(“A1”))

Zdá se, že IsDate je dokonale spolehlivý při identifikaci buněk, které obsahují datum nebo čas. Neidentifikuje například buňku obsahující 5.1 jako datum. Pokud váš kód potřebuje určit, zda lze řetězec interpretovat jako datum, nejlepším řešením je vložit tento řetězec do buňky a poté napsat kód pro kontrolu obsahu buňky.

Leave a Comment

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Objevte, jak efektivně využívat příkazy Znovu a Opakovat ve Wordu 2016 pro opravy dokumentů a zlepšení pracovního toku.

Jak změnit zamčené a skryté formátování buněk

Jak změnit zamčené a skryté formátování buněk

Naučte se, jak efektivně změnit stav buněk v Excelu 2010 z uzamčených na odemčené nebo z neskrytého na skrytý s naším podrobným průvodcem.

Jak přeložit text v cizím jazyce ve Wordu 2016

Jak přeložit text v cizím jazyce ve Wordu 2016

Zjistěte, jak efektivně využít překladové nástroje v Office 2016 pro překlad slov a frází. Překlad Gizmo vám pomůže překládat text s lehkostí.

Jak používat šablony ve Wordu 2013

Jak používat šablony ve Wordu 2013

Šablona ve Wordu šetří čas a usnadňuje vytváření dokumentů. Zjistěte, jak efektivně používat šablony ve Wordu 2013.

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Zjistěte, jak si vytvořit e-mailová upozornění ve SharePointu a zůstat informováni o změnách v dokumentech a položkách.

Obsah SharePoint Online a typy obsahu

Obsah SharePoint Online a typy obsahu

Objevte skvělé funkce SharePoint Online, včetně tvorby a sdílení dokumentů a typů obsahu pro efektivnější správu dat.

Výpočet fiskálního čtvrtletí pro datum v Excelu

Výpočet fiskálního čtvrtletí pro datum v Excelu

Zjistěte, jak vypočítat fiskální čtvrtletí v Excelu pro různá data s použitím funkce CHOOSE.

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Zjistěte, jak vytvořit hypertextový odkaz v PowerPointu, který vám umožní pohodlně navigovat mezi snímky. Použijte náš návod na efektivní prezentace.

Zobrazit starší verzi dokumentu aplikace Word 2016

Zobrazit starší verzi dokumentu aplikace Word 2016

Uložili jste nedávno svůj dokument? Náš návod vám ukáže, jak zobrazit starší verze dokumentu v aplikaci Word 2016.

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra vlastní kartě na pásu karet nebo tlačítku na panelu nástrojů Rychlý přístup. Návod pro Excel 2013.