Přijmout platná data pouze od uživatele v aplikaci Excel VBA

Anonim

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.