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.