Řetězec VBA k dnešnímu dni Převod řetězcových hodnot na datum v aplikaci Excel VBA
Řetězec Excel VBA k dnešnímu dni
Ve Vba existuje metoda, pomocí které můžeme převést daný řetězec na datum, a tato metoda je známá jako funkce CDATE ve VBA, jedná se o vestavěnou funkci ve VBA a části potřebné pro tuto funkci je nejprve převést řetězec na číslo a potom převedeme dané číslo na datum. Formát výsledku závisí pouze na formátu systémového data.
Jedním z běžných problémů, se kterými se všichni potýkáme v aplikaci Excel, je „Datum a čas“, které se často ukládají jako textové hodnoty a jsou zpočátku bez povšimnutí. Když ale budou muset tento čas využít, zjistíme, že tyto hodnoty jsou uloženy jako text a vůbec nevíme, jak s nimi zacházet. „Datum a čas“ jsou dvě kombinované věci v jednom prvku, ale jakmile jsou tyto hodnoty uloženy jako textové hodnoty, je obtížné s nimi pracovat.
Jak převést řetězcové hodnoty k dnešnímu dni?
Tuto šablonu Excel String to Date Excel si můžete stáhnout zde - Šablona Excel VBA String to DatePříklad č. 1
Jakmile je proměnná VBA deklarována a přiřazena jako String, vše, co je této proměnné přiřazeno, bude považováno pouze za řetězec. Například se podívejte na níže uvedený kód.
Kód:
Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub
Ve výše uvedené kódové proměnné „k“ definované jako datový typ „String“ a této proměnné jsme přiřadili hodnotu jako „10-21“.
Dobře, pojďme spustit kód a uvidíme, co dostaneme ve schránce zpráv ve VBA.
Získali jsme hodnotu pouze jako 10-21, ale obvykle jsou tyto hodnoty datem, nikoli řetězcovými hodnotami. Takže i když je datový typ přiřazen „String“, stále můžeme převádět data pomocí funkce převodu datového typu CDATE VBA.
Kód:
Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub
Ve výše uvedeném, než ukážeme výsledek proměnné „k“ v okně se zprávou, jsme přiřadili funkci CDATE. Provede se malá úprava, podívejme se, jaký velký dopad to má.
Nyní bychom viděli výsledek jako „Datum“ už ne jako „Řetězcová“ hodnota.
Příklad č. 2
Nyní se podívejte na níže uvedený kód jako příklad.
Kód:
Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub
V tomto okamžiku by výše uvedený kód zobrazil výsledek jako „43599“, jak jsme přiřadili výše.
Ale jakmile použijeme funkci CDATE, převede se na hodnotu data.
Kód:
Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub
Výsledek po použití funkce CDATE je následující.
Protože aplikace Excel uložila datum jako pořadová čísla, naše přiřazené pořadové číslo 43599 se rovná datu 05/14/2019, kdy se použije formát data.
Můžeme také použít formát data jako „DD-MMM-RRRR“, abychom mohli datum přesně načíst.
Kód:
Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") End Sub
Ve výše uvedeném jsem deklaroval jednu extra proměnnou pro uložení výsledku. Pro tuto proměnnou jsem použil funkci převodu CDATE.
Dále jsem použil funkci FORMAT k použití formátu formátu „DD-MMM-RRRR“ a výsledek bude uveden níže.
Díky tomu můžeme jasně číst část dne a měsíc. Záleží také na formátu vašeho systémového data v aplikaci Excel, protože můj formát systémového data byl „MM-DD-RRRR“, zobrazoval se tak, ale to by nemělo být překážkou formátování.
Příklad č. 3
Nyní uvidíme, jak jsou data formátována jako textové hodnoty v buňkách listu. Níže je obrázek dat uložených jako text v listu.
Ve sloupci A od A2 do A12 máme hodnoty, které vypadají podle data, ale když se podíváme na kartu formát, zobrazí se formát „Text“. Nyní musíme tyto hodnoty převést z textu na datum.
Níže je uveden kód, který jsem napsal k převodu textových hodnot data na skutečná data.
Kód:
Sub String_To_Date2 () Dim k As Long 'Data jsou ve více než jedné buňce, takže je třeba procházet každou buňkou' Open For Loop For k = 2 To 12 'Data začínají od 2. řady a končí ve 12. řadě, takže 2 až 12 Buňky (k, 2) .Hodnota = CDate (Buňky (k, 1) .Hodnota) Další k Konec Sub
Pokud spustíte kód, získá nás níže uvedený výsledek.
Věci k zapamatování
- CDATE je funkce převodu datového typu, ale lze ji použít k převodu uloženého data řetězce VBA na skutečné hodnoty data.
- Výsledek formátu funkce CDATE závisí pouze na formátu systémového data.
- Data jsou uložena jako pořadová čísla v aplikaci Excel, proto je pro jejich zobrazení jako data nutné formátovat.