Sprejmi samo veljavne datume od uporabnika v Excelu VBA

Anonim

V svoji nedavni nalogi sem moral sprejeti vnos uporabnika. Ena vhodna vrednost je bil datum rojstva in seveda mora biti datum. Kar sem delal, je shranjevanje vnosa v različnem podatkovnem tipu. Tako je bila koda brez napak in koda je sprejemala vse vrednosti, ki jih je dal uporabnik. Spodaj je koda:

Dim dob kot varianta dob = Application.InputBox ("Vnesite svoj datum rojstva") 

To je bil seveda napačen pristop, saj lahko uporabnik vnese poljubno vrednost, ki morda ni veljaven datum.

Kar želim, je, da moja koda zazna vsak neveljaven datum in od uporabnika zahteva, da vnese veljaven datum in konča podprogram.

Tukaj je koda, ki uporabnikom omogoča, da vnesejo samo veljaven datum.

Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Vnesite svoj datum rojstva") On Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Prosimo, vnesite veljaven datum." End Sub 

Ko zaženete zgornjo kodo, vas bo pozval, da vnesete svoj datum rojstva. Če vnesete neveljaven datum, vas bo pozval, da vnesete veljaven datum in zaključite postopek.

Kako deluje?

Prva in najpomembnejša stvar, ki smo jo naredili, je uporaba spremenljivke Vrsta datuma za shranjevanje pričakovanega datuma. Zdaj, če poskušate shraniti vrednost, ki ni veljaven datum, bo to prišlo do napake "neskladje vrste".

Nato to napako ujamemo zPri napaki Pojdiobravnavalec napak.

On Error GoTo Errorhandler dob = Application.InputBox ("Vnesite svoj datum rojstva") On Error GoTo 0 

Z uporabo napake pri vklopu preskočimo kontrolnik na oznako Errorhandler, ki je tik pred stavkom End Sub. Tako se od uporabnika zahteva, da vnese veljaven datum in podpogon se konča.

Odpravljanje napak: MsgBox "Vnesite veljaven datum." End Sub 

Če uporabnik vnese veljaven datum, potem nadzor teče normalno in vnos se shrani v spremenljivko dob. Podizdavek Exit smo postavili tako, da nadzor ne gre na upravljalnik napak in postopek konča tam. Zato vse izjave o koncu postavite pred izhodom pod. In to je to.

Torej ja, fantje, tako omejite uporabnika na vnos samo veljavnega datuma. Sporočite mi, če dvomite glede datumov VBA ali katere koli druge poizvedbe, povezane z Excelom/VBA. Vprašajte nas v spodnjem razdelku za komentarje.

Vstavite časovno oznako datuma z VBA | Za vnos časovnega žiga, ko je bila določena celica napolnjena s to kodo VBA. Če vnesete katero koli vrednost v stolpec A, se bo sosednja celica v stolpcu B samodejno napolnila z časom vnosa.

Datum in čas v VBA | Na tej strani poiščite vse teme o datumu in uri v VBA.

Kako lahko oblikujemo datum prek VBA? | Naučite se oblikovati datum z uporabo VBA v Excelu. Vzemimo primer, da razumemo, kako in kje lahko celico formatiramo v kratki datumski številki.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določene vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.