Akceptujte platné dátumy iba od používateľa v programe Excel VBA

Anonim

V mojej nedávnej úlohe som bol povinný prijať vstup od používateľa. Jednou vstupnou hodnotou bol dátum narodenia a samozrejme to musí byť dátum. To, čo som robil, je ukladanie vstupu do variantného dátového typu. Vďaka tomu bol kód bezchybný a kód akceptoval akúkoľvek hodnotu, ktorú užívateľ dával. Nasleduje kód:

Dim dob As Variant dob ​​= Application.InputBox ("Zadajte dátum svojho narodenia") 

Toto bol samozrejme nesprávny prístup, pretože používateľ môže zadať akúkoľvek hodnotu, ktorá nemusí byť platným dátumom.

Chcem, aby môj kód zistil neplatný dátum a požiadal používateľa, aby zadal platný dátum a ukončil podprogram.

Tu je kód, ktorý umožňuje používateľom zadať ako vstup iba platný dátum.

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." Koniec pod 

Po spustení vyššie uvedeného kódu vás požiada o zadanie dátumu narodenia. Ak zadáte neplatný dátum, požiada vás o zadanie platného dátumu a ukončenie postupu.

Ako to funguje?

Prvá a najdôležitejšia vec, ktorú sme urobili, je použiť premennú typu Dátum na uloženie očakávaného dátumu. Ak sa teraz pokúsite uložiť hodnotu, ktorá nie je platným dátumom, dôjde k chybe „nezhoda typu“.

Ďalej túto chybu zachytíme pomocou súboruPri chybe Choďteobsluha chýb.

Pri chybe GoTo Errorhandler dob = Application.InputBox ("Zadajte dátum svojho narodenia") Pri chybe GoTo 0 

Pomocou On Error preskočíme ovládací prvok na značku Errorhandler, ktorá je tesne pred príkazom End Sub. Užívateľ je teda vyzvaný, aby zadal platný dátum a podzáznamka skončila.

Errorhandler: MsgBox "Zadajte platný dátum." Koniec pod 

Ak používateľ zadá platný dátum, potom ovládací prvok prebieha normálne a vstup sa uloží do premennej dob. Dali sme čiastkový príkaz Exit, aby kontrola neprešla na spracovanie chýb a ukončila procedúru priamo tam. Preto dajte všetky svoje záverečné vyhlásenia pred podsekciu exit. A to je všetko.

Takže áno, chlapci, týmto obmedzíte používateľa, aby zadal iba platný dátum. Dajte mi vedieť, ak máte nejaké pochybnosti týkajúce sa dátumov VBA alebo akéhokoľvek iného dotazu súvisiaceho s Excelom/VBA. Opýtajte sa nás v sekcii komentárov nižšie.

Vložte pečiatku dátumu a času s VBA | Ak chcete zadať časovú pečiatku, keď bola konkrétna bunka vyplnená pomocou tohto kódu VBA. Ak do stĺpca A zadáte akúkoľvek hodnotu, susedná bunka v stĺpci B sa automaticky vyplní časom zadania.

Dátum a čas vo VBA | Na tejto stránke nájdete všetky témy týkajúce sa dátumu a času vo VBA.

Ako môžeme formátovať dátum prostredníctvom VBA? | Naučte sa formátovať dátum pomocou VBA v Exceli. Vezmime si príklad, aby sme pochopili, ako a kde môžeme naformátovať bunku v krátkom dátovom čísle.

Populárne články:

50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám umožní pracovať ešte rýchlejšie v Exceli.

Funkcia VLOOKUP v programe Excel | Toto je jedna z najpoužívanejších a najobľúbenejších funkcií programu Excel, ktorá sa používa na vyhľadávanie hodnôt z rôznych rozsahov a hárkov.

COUNTIF v Exceli 2016 | Počítajte hodnoty s podmienkami pomocou tejto úžasnej funkcie. Na počítanie konkrétnej hodnoty nepotrebujete filtrovať svoje údaje. Funkcia Countif je potrebná na prípravu palubnej dosky.

Ako používať funkciu SUMIF v programe Excel | Toto je ďalšia zásadná funkcia palubnej dosky. To vám pomôže zhrnúť hodnoty za konkrétnych podmienok.