Tento krátký návod ukáže, jak převést řetězec na datum ve VBA.
Data v Excelu se ukládají jako čísla a poté se formátují tak, aby se zobrazovala jako datum. 1. den ve světě Excelu byl 1. leden 1900 (výchozí nastavení Windows) nebo 1. leden 1904 (výchozí Macintosh) - což znamená, že 5. srpna 2022 je den 44413 od 1. ledna 1900. Převod řetězce na datum v Excelu „Nejprve musíme převést řetězec na číslo a poté převést toto číslo na datum.
Funkce CDate
K převodu řetězce na datum můžeme použít funkci nazvanou CDate ve VBA.
1234567 | Sub ConvertDate ()Dim dte As SingleDim strD jako řetězecstrD = "05/10/2020"dte = CDate (strD)MsgBox dteEnd Sub |
Jak jsme deklarovali číselnou proměnnou (dte jako Single), msgbox vrátí číslo, které odkazuje na zadané datum.
Je důležité, abychom zadali rok pomocí všech 4 číslic roku (tj. 2022 a ne pouze 20), jinak by vrácené číslo nemuselo být podle očekávání. Excel neinterpretuje část data v roce - toto je ovládáno ovládacím panelem našeho počítače.
Pokud však deklarujeme proměnné jako proměnnou data, okno se zprávou vrátí číslo převedené na datum.
1234567 | Sub ConvertDate ()Dim dte As DateDim strD jako řetězecstrD = "05/10/2020"dte = CDate (strD)MsgBox dteEnd Sub |
Můžeme to udělat o krok dále a formátovat datum na typ formátu data, který bychom chtěli vidět.
1234567 | Sub ConvertDate ()Dim dte As StringDim strD jako řetězecstrD = "05/10/2020"dte = Format (CDate (strD), "dd mmmm rrrr")MsgBox dteEnd Sub |
V tomto případě převádíme řetězec na datum a potom znovu na řetězec!
Pokud bychom rok úplně vynechali, Excel předpokládá aktuální rok.