V mém nedávném úkolu jsem byl povinen přijmout vstup od uživatele. Jednou vstupní hodnotou bylo datum narození a samozřejmě to musí být datum. To, co jsem dělal, je ukládání vstupu do variantního datového typu. Díky tomu byl kód bez chyb a kód přijímal jakoukoli hodnotu, kterou uživatel dává. Níže je kód:
Dim dob As Variant dob = Application.InputBox ("Zadejte své datum narození")
To byl samozřejmě nesprávný přístup, protože uživatel může zadat libovolnou hodnotu, která nemusí být platným datem.
Chci, aby můj kód detekoval neplatné datum a požádal uživatele o zadání platného data a ukončení podprogramu.
Zde je kód, který umožňuje uživatelům zadat jako vstup pouze platné datum.
Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Enter your Date of Birth") On Error GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Please enter a valid date." End Sub
Když spustíte výše uvedený kód, požádá vás o zadání data narození. Pokud zadáte neplatné datum, požádá vás o zadání platného data a ukončení postupu.
Jak to funguje?
První a nejdůležitější věc, kterou jsme udělali, je použít proměnnou typu Datum k uložení očekávaného data. Pokud se nyní pokusíte uložit hodnotu, která není platným datem, dojde k chybě „Neshoda typu“.
Dále tuto chybu zachytíme pomocíPři chybě Přejítobsluha chyb.
Při chybě GoTo Errorhandler dob = Application.InputBox ("Zadejte své datum narození") Při chybě GoTo 0
Pomocí chyby On Error přeskočíme ovládací prvek na značku Errorhandler, která je těsně před příkazem End Sub. Uživatel je tedy požádán o zadání platného data a dílčí konec.
Errorhandler: MsgBox "Zadejte platné datum." End Sub
Pokud uživatel zadá platné datum, pak ovládací prvek proběhne normálně a vstup se uloží do proměnné dob. Vložili jsme dílčí příkaz Exit, aby ovládací prvek neprošel do obsluhy chyb a ukončil proceduru právě tam. Umístěte tedy všechna koncová prohlášení před exit sub. A to je vše.
Takže ano, lidi, tímto omezíte uživatele na zadání pouze platného data. Dejte mi vědět, pokud máte nějaké pochybnosti ohledně termínů VBA nebo jiného dotazu souvisejícího s Excel/VBA. Zeptejte se nás v sekci komentáře níže.
Vložte razítko data a času pomocí VBA | Chcete -li zadat časové razítko, když byla konkrétní buňka vyplněna pomocí tohoto kódu VBA. Pokud do sloupce A zadáte libovolnou hodnotu, sousední buňka ve sloupci B se automaticky zaplní časem zadání.
Datum a čas ve VBA | Na této stránce najdete všechna témata týkající se data a času ve VBA.
Jak můžeme formátovat datum prostřednictvím VBA? | Naučte se formátovat datum pomocí VBA v Excelu. Uveďme si příklad, abychom pochopili, jak a kde můžeme buňku naformátovat na krátké číslo data.
Oblíbené články:
50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.
Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.
COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty nepotřebujete filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.
Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.