VBA Převést řetězec na datum

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.

wave wave wave wave wave