CDate - je to funkce v aplikaci VBA Excel, která Vám umožňuje převést data do formátu data. Bere jako argument řetězec ve formátu data a vrací hodnotu typu Date.
Funkce CDate může být velmi užitečná při práci s daty v aplikaci VBA Excel. Lze jej použít k převodu hodnot řetězce na data, což umožňuje různé operace s daty, jako je srovnání, odčítání, sčítání atd.
Pokud například máme řetězec "25.07.2025", můžeme jej pomocí funkce CDate převést na hodnotu typu Date. To nám umožní použít získané Datum k provádění různých operací.
Je důležité poznamenat, že funkce CDate zvládne různé formáty data. Může pracovat se standardními formáty data, jako je " mm.dd.yyyy "nebo" dd-mm-yyyy " a také s vlastními formáty.
Funkce CDate je tedy výkonným nástrojem při práci s daty v aplikaci VBA Excel, který vám umožní snadno převést data do formátu data a provádět s nimi různé operace.
Jak používat funkci CDate v aplikaci VBA Excel?
Funkce CDate VBA Excel se používá k převodu textové hodnoty na datum. Umožňuje vám pracovat s daty a provádět různé operace, jako je srovnání, odčítání a sčítání.
Syntaxe funkce CDate má následující vzhled:
V nastavení hodnoty můžete předat řádek, který chcete převést na datum.
Zde je jednoduchý příklad použití funkce CDate:
Dim dateValue As Date dateValue = CDate("17.05.2025") MsgBox dateValue
V tomto příkladu převedeme řetězec "17.05.2025" na funkci CDate, která jej převede na hodnotu typu Date. Výsledné Datum pak zobrazíme ve zprávě MsgBox. Výsledkem bude datum "17.05.2025".
Funkce CDate automaticky analyzuje přenesenou možnost a pokusí se ji převést na datum. Dokáže zpracovat různé formáty dat, jako je " dd.mm. GGG "nebo" MM/DD / GGG". Pokud přenesenou hodnotu nelze převést na datum, funkce CDate vrátí chybu.
Dim dateValue As Date dateValue = CDate("22-07-2025") MsgBox dateValue
V tomto příkladu převedeme řádek "22-07-2025" do funkce CDate. Protože tento formát data není standardní pro Excel, funkce CDate vrátí chybu Typ nesouladu.
Pokud pracujete s daty v jiných formátech, můžete použít funkce formátování VBA, jako je Format nebo DateSerial, k převodu hodnot data do požadovaného formátu před použitím funkce CDate.
Poznámka: Funkce CDate používá k převodu data místní nastavení počítače. Pokud jsou vaši uživatelé umístěni v různých časových pásmech nebo používají různé formáty dat, měli byste být při používání této funkce opatrní a zvážit tyto rozdíly.
Nyní víte, jak používat funkci CDate v aplikaci VBA Excel k převodu textových hodnot na data a provádění operací na nich. Je to velmi užitečná funkce při práci s daty a časem v VBA.
Převod textu na datum
Funkce CDate v aplikaci VBA Excel je navržena tak, aby převedla hodnotu textového typu na hodnotu typu Date, což znamená, že řetězec s datem převede na datum. To může být užitečné, když je třeba pracovat s daty v Excelu a být s nimi schopen provádět různé operace.
Příklad použití funkce CDate:
Sub Converttextttodate () Dim dateString As String Dim dateValue As Datestring = "10.05.2025" dateValue = CDate (dateString) MsgBox "převedené Datum:" & dateValue End Sub
V tomto příkladu deklarujeme proměnnou Datestring typu String a přiřadíme jí hodnotu "10.05.2025". Poté oznámíme proměnnou dateValue typu Date a pomocí funkce CDate převedeme řetězec dateString na hodnotu typu Date. Nakonec převáděné Datum zobrazíme v okně zprávy pomocí funkce MsgBox.
Všimněte si, že textový řetězec dateString by měl být ve formátu data, který odpovídá vašim nastavením regionálních možností ve Windows. Například v americkém formátu může být Datum prezentováno jako "05/10/2025 "a v evropském formátu"10.05.2025". Funkce CDate automaticky určí formát data, a pokud neodpovídá očekávanému formátu, dojde k chybě.
Převod čísla na datum
Funkce CDate v aplikaci VBA Excel umožňuje převést číselnou hodnotu na datum. To může být užitečné, když potřebujete převést datum ve formátu čísla pro další analýzu nebo použití ve výpočtech.
Příklad převodu čísla na datum pomocí funkce CDate:
| Číselná hodnota | Výsledek (Datum) |
|---|---|
| 43101 | 03.01.2018 |
| 43102 | 04.01.2018 |
| 43103 | 05.01.2018 |
Tabulka uvádí příklady převodu číselných hodnot na datum pomocí funkce CDate. Číselná hodnota představuje počet dní, které uplynuly od 31. Prosince 1899. Například hodnota 43101 odpovídá datu 3.ledna 2018.
Funkce CDate může přijímat jak číselné hodnoty, tak textové hodnoty, které představují Datum. V případě textových hodnot musí být ve správném formátu data, jinak funkce vrátí chybu. Například hodnota " 01.01.2018 "bude správně převedena na datum, ale hodnota" 01-01-2018 " způsobí chybu.
Převod čísla na datum může být užitečný při práci s velkým množstvím dat a automatizaci výpočtů VBA Excel. Umožňuje rychlé a pohodlné provádění operací s daty, jako je srovnání, přidání nebo odebrání daného počtu dní a další.
Správa formátu data a času
Určení formátu data a času
Formát data a času v Excelu je dán symboly, které jsou zkratkami různých částí data a času. Některé z nejoblíbenějších znaků formátu data a času jsou uvedeny v tabulce níže:
| Znak | Popis |
|---|---|
| d | Den měsíce (1-31) |
| m | Měsíc (1-12) |
| yy | Dvouciferný rok (např. 21, 22) |
| yyyy | Čtyřmístný rok (např. 2025, 2025) |
| h | Hodina ve dvanáctihodinovém formátu (1-12) |
| H | Hodina ve 24hodinovém formátu (0-23) |
| n | Minuta (0-59) |
| s | Vteřina (0-59) |
Pokud tedy potřebujete převést textový řádek do formátu data a času, můžete zadat požadovaný formát pomocí kombinace znaků z tabulky. Následující kód například převede textový řádek do formátu data a času:
Dim myDate As DatemyDate = CDate("01/01/2025 12:00:00")
V důsledku provádění tohoto kódu bude proměnná myDate obsahovat hodnotu 01.01.2025 12:00:00 ve formátu data a času.
Lokalizace formátu data a času
Při použití funkce CDate je třeba poznamenat, že formát data a času může záviset na nastavení jazyka vašeho počítače. Například v některých zemích byl přijat formát " den.měsíc.rok", zatímco v jiných zemích může být formát "měsíc/den / rok". Pokud je tedy váš kód spuštěn v počítači s jinými jazykovými nastaveními, výsledek konverze může být neočekávaný.
Chcete-li tento problém vyřešit, můžete pomocí funkce explicitně zadat formát data a času Format. Například:
Dim myDate As DatemyDate = CDate(Format("01/01/2025 12:00:00", "dd/mm/yyyy hh:mm:ss"))
V tomto případě funkce Format převede textový řádek do formátu "den / měsíc / rok hodina: minuta: sekunda", který pak funkce používá CDate převést do formátu data a času.
Nyní víte, jak spravovat formát data a času při používání funkce CDate. To umožňuje explicitně zadat formát a být si jisti výsledkem konverze bez ohledu na nastavení jazyka počítače.
Zpracování nesprávně zadaných dat
Funkce CDate v aplikaci VBA Excel umožňuje převod textových hodnot na data. Při zadávání nesprávných údajů však může dojít k chybě. Pro zpracování těchto případů lze použít konstrukci Try. Catch.
Níže je uveden příklad kódu, který ukazuje zpracování chyb při převodu textu na datum:
Dim dateValue As DateDim inputValue As StringinputValue = "10-31-2025" ' Неправильный формат датыOn Error Resume Next ' Включаем обработку ошибокdateValue = CDate(inputValue)If Err <> 0 ThenMsgBox "Введенная дата имеет неправильный формат!"End IfOn Error Goto 0 ' Выключаем обработку ошибок
V tomto příkladu proměnná inputValue obsahuje nesprávný formát data. Díky konstrukci Try. Catch (On Error Resume Next a On Error Goto 0) můžeme zachytit chybu a provést některé další kroky (například zobrazit chybovou zprávu).
Po úspěšném provedení funkce CDate bude proměnná dateValue obsahovat převedenou hodnotu data.
Funkce CDate v aplikaci VBA Excel tedy umožňuje nejen převádět textové hodnoty na data, ale také zpracovávat chyby při zadávání nesprávných dat.