Srovnání dat ve VBA
Určení typu
Není nutné převést data na datový typ "Datum" pro porovnání, pokud jsou již v tomto typu. Můžete zjistit, zda je proměnná "Datum" pomocí několika metod. Prohlédněte si sekci deklarací na začátku procedury VBA. Tato část je část, kde deklarujete všechny proměnné pomocí klíčového slova "Dim". Vaše datové proměnné budou deklarovány s následujícími pokyny: "Dim d1 as Date". Dalším způsobem, jak zjistit, zda je vaše proměnná typu "Datum", je zkontrolovat přiřazení k této proměnné. Tyto přiřazení použije znak "#", který označuje typ "Datum". Například následující instrukce přiřadí datum "12/1/2001" proměnné "D1", která je "Datum".
D1 = # 12/1/2001 #
Jak převést na datový typ "Datum"
Chcete-li porovnat data ve VBA, musíte nejprve uložit data uložená v "Datum", což je jeden z různých typů hodnot ve VBA. Typ "Datum" je speciální instance celého datového typu, takže porovnávání dat je v podstatě stejné jako porovnání celých dat. Pokud vaše data ještě nejsou v "Datum", je nutné je převést. Můžete to udělat pomocí funkce CDate. Například spusťte následující instrukce převést řetězec "12/1/2001" na typ "Datum":
D1 = CDate ("12/1/2001")
Srovnání
Chcete-li zkontrolovat, zda se datum v proměnné "Datum" objeví před jiným, použijte symbol "méně než", jak je ukázáno v následujícím příkladu:
Jestliže (d1 <d2)
Pomocí symbolu "větší než" zkontrolujte, zda se jedná o jeden den za druhým, a použijte symbol "rovný", abyste zjistili, zda se hodnoty obou proměnných týkají stejného data.
Ukázkový program
Napište ukázkový program, který převádí a porovnává data, takže můžete při psaní složitějších programů VBA tento postup provést. Otevřete programovací prostředí v libovolné aplikaci sady Office klepnutím na tlačítko "Visual Basic" na kartě "Developer". Potom vložte následující program do středového okna prostředí. Používá funkci "CDate" k převodu řetězců na data a dělá tři různá porovnání mezi dvěma. Proveďte program stisknutím klávesy "F5" a pozorujte výstup tak, že zaškrtnete okno "Immediate".
(D1 d2) Pak Debug.Print "Datum 1 nastane později než datum 2. " Pokud (d1 = d2) Pak Debug.Print "Datum 1 je stejné jako datum 2." End Sub