Funkce Excel VBA CDate

Slyšeli jste o funkci nebo příkazu, kterým můžeme něco převést na datum a čas? Ano, spolu s funkcí Date máme funkci CDate ve VBA, která to dělá. CDate je funkce Excelu, ale to lze provést i ve VBA. CDate převádí cokoli kromě standardního formátu data. To lze použít pro převod času stejně jako s Date.

Syntaxe CDate je nejjednodušší syntax, jakou jsme kdy viděli. CDate považuje za vstup pouze výraz jako datum a čas v jakémkoli formátu. Níže je uvedena jeho syntaxe.

Potřebujeme vložit jakékoli číslo, datum nebo čas v jakémkoli formátu, který máme, a CDate jej automaticky převede do standardního formátu Datum a čas.

Jak používat Excel VBA CDate funkce?

Naučíme se používat funkci VBA CDate s několika příklady v Excelu.

Tuto šablonu VBA CDate Excel si můžete stáhnout zde - VBA CDate Excel Template

VBA CDate - Příklad č. 1

Nejprve si vezmeme jednoduchý příklad. V tomto příkladu se pokusíme převést jeden jednoduchý typ data do standardního formátu, který je ve výchozím nastavení zabudován do Excelu.

Při použití funkce CDate ve VBA postupujte podle níže uvedených kroků.

Krok 1: Otevřete modul, který je k dispozici na kartě nabídky Vložit, jak je znázorněno níže.

Krok 2: Nyní napište podprogram VBA CDate do libovolného jména, jak je ukázáno níže. Doporučuje se však do názvu prováděné práce zapsat hlavně název podprogramu.

Kód:

 Sub VBA_CDate () End Sub 

Krok 3: Nyní deklarujte proměnnou, řekněme, že je Input1 jako String . Považujeme datový typ za řetězec, protože budeme citovat vstup v kombinaci čísel a abeced.

Kód:

 Sub VBA_CDate () Dim Input1 jako String End Sub 

Krok 4: Nyní deklarujeme další proměnnou, podle které uvidíme výstup. A tato proměnná bude použita k zobrazení dat.

Kód:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date End Sub 

Krok 5: Nyní vyberte libovolné datum, které je v kombinaci čísel a abeced a citujte to v obrácených čárkách, jak je ukázáno níže.

Kód:

 Sub VBA_CDate () Dim Input1 jako String Dim FormatDate As Date Input1 = "September 1, 2019" End Sub 

Krok 6: Pro převedení data vstupu do standardního formátu použijeme funkci CDate, jak je ukázáno níže, s proměnnou FormatDate, která byla deklarována výše. A použijte hodnotu uloženou v proměnné Input1.

Kód:

 Sub VBA_CDate () Dim Input1 jako String Dim FormatDate As Date Input1 = "September 1, 2019" FormatDate = CDate (Input1) End Sub 

Krok 7: A pro zobrazení výstupu použijeme Msgbox k jeho přiřazení s funkcí FormatDate of Date.

Kód:

 Sub VBA_CDate () Dim Input1 jako String Dim FormatDate As Date Input1 = "September 1, 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Krok 8: Nyní spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Play. Dostaneme datum, které jsme si vybrali jako 1. září 2019, je nyní převedeno do standardního formátu data jako 1. 9.1919, jak je uvedeno níže.

Můžeme vyzkoušet různé vícenásobné kombinace dat, které skutečně existují, a zjistit, jaký standardní výstup dostaneme.

VBA CDate - Příklad č. 2

V tomto příkladu uvidíme různé typy data a času, které existují a jaký výstup bychom získali při používání VBA CDate. Postupujte podle následujících kroků:

Krok 1: Napište podprogram Vate CDate, jak je ukázáno níže.

Kód:

 Sub VBA_CDate2 () End Sub 

Krok 2: Nyní deklarujeme 3-4 různé proměnné typu Data Date. Pojďme deklarovat první proměnnou jako Date1 a dát jí datový typ jako Date, jak je ukázáno níže.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date End Sub 

Krok 3: Nyní přiřaďte jakékoli číslo, které chceme převést ve formátu Datum. Náhodné číslo jsme vybrali jako 12345.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" End Sub 

Krok 4: Podobným způsobem definujte jinou proměnnou Date2 jako typ data Date, jak je uvedeno níže.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Krok 5: Nyní znovu v proměnné Date2 zvažte zvážení data v libovolném formátu. Zde jsme ponechali 12/3/45 jako náš vstupní údaj.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Krok 6: Dále znovu deklarujeme další proměnnou Date3 jako Date.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub Sub 

Krok 7: Zde přidělíme hodnotu kdykoli, jak je ukázáno níže, ve 12:10 hodin ve 24hodinovém formátu.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Krok 8: Nyní konečně deklarujeme další proměnnou Date4 jako Datum.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub Sub 

Krok 9: A zde dáme nějakou desetinnou hodnotu jako 0, 123, nebo si můžete vybrat libovolnou hodnotu podle potřeby.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Nyní existují 2 způsoby, jak zobrazit výstup hodnot uložených v různých proměnných deklarovaných výše. MsgBox nám umožní vidět všechny hodnoty současně, ale pomocí Debug.print nám umožní vidět všechny výstupy proměnných najednou.

Krok 10: Takže, tady je lepší, pokud zvolíme Debug.Print, jak je ukázáno níže. A na stejném řádku přiřaďte všechny proměnné počínaje 1. až 4. datem.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Debug. Datum tisku1, Datum2, Datum3, Datum4 Konec Sub 

Krok 11: A pro zobrazení výstupu použijeme okamžité okno, jak je ukázáno níže. Chcete-li to získat, přejděte na kartu nabídky Zobrazit a vyberte Okamžité okno, jak je znázorněno níže.

Krok 12: Nyní spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Play. Uvidíme, datum datový typ nám dal výstup, ale není ve standardním datovém formátu.

Krok 13: K získání standardních dat použijeme i CDate. Takže přiřazíme CDate ke každému datu a času, který jsme použili pro různé proměnné, jak je ukázáno níže.

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 Jako datum Date4 = CDate ("0, 123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Krok 14: Nyní spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Play.

Uvidíme, že výstupy Date a CDate jsou stejné, ale mezi nimi je základní společný rozdíl. A to znamená, že CDate může převádět libovolný typ čísel do standardního formátu data.

Krok 15: Zkusme jakýkoli text nebo abecedu s CDate a uvidíme, co dostaneme. Takže jsme do proměnné Date4 zadali nějaký náhodný text jako abc .

Kód:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Krok 16: Nyní spusťte kód znovu. Dostaneme okno se zprávou s chybovou zprávou jako Neshoda typu . Je to proto, že CDate nemůže číst a převádět text do standardního formátu data a času.

Výhody a nevýhody funkce Excel VBA CDate

  • Tím lze libovolné datum nebo čas převést na standardní formát.
  • VBA CDate interpretuje libovolné číslo jako hodnotu Date a později jej převede do standardního formátu.
  • Nelze interpretovat a převést text do formátu data.

Co si pamatovat

  • CDate může považovat pouze čísla za vstup, ale toto číslo může být v libovolném formátu.
  • Textovou hodnotu nelze převést.
  • Pokud vložíme čas nebo datum, které je již ve standardním formátu, vrátí znovu stejnou hodnotu jako výstup.
  • Funkce data a CDate pracuje stejným způsobem. Zatímco pomocí CDate můžeme převést čas i datum.

Doporučené články

Toto je průvodce funkcí VBA CDate. Zde diskutujeme o tom, jak používat funkci CDate v Excelu pomocí kódu VBA spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Formát data VBA
  2. Funkce Excel DATEDIF
  3. VBA DateSerial
  4. Funkce Excel DATEDIF

Kategorie: