Ř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 setkáváme v aplikaci Excel, je „Datum a čas“, které se často ukládají jako textové hodnoty a zůstávají 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?

Pří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. Podívejte se například 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ém kódu je proměnná „k“ definována jako datový typ „String“ a pro tuto proměnnou 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“, můžeme stále 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 případě, 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řidělené 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 formát mého systémového data byl „MM-DD-RRRR“, zobrazovalo se to 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

Spustíte-li kód, zobrazí se nám 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.

Zajímavé články...