Prihvati samo važeće datume od korisnika u Excelu VBA

Anonim

U svom nedavnom zadatku morao sam prihvatiti unos od korisnika. Jedna ulazna vrijednost bio je datum rođenja i to, naravno, mora biti datum. Ono što sam radio je spremanje unosa u varijantu tipa podataka. Time je kôd bio bez grešaka i kôd je prihvaćao bilo koju vrijednost koju je korisnik dao. Ispod je kôd:

Dim dob kao varijanta dob = Application.InputBox ("Unesite svoj datum rođenja") 

To je, naravno, bio netočan pristup jer korisnik može unijeti bilo koju vrijednost koja možda nije valjani datum.

Ono što želim je učiniti da moj kôd otkrije svaki neispravan datum i zatraži od korisnika da unese valjani datum i prekine potprogram.

Ovdje je kôd koji korisnicima omogućuje da unose samo valjani datum.

Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Unesite svoj datum rođenja") On Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Molimo unesite valjani datum." Kraj podm 

Kada pokrenete gornji kôd, od vas će se tražiti da unesete datum rođenja. Ako unesete nevažeći datum, od vas će se tražiti da unesete valjani datum i završite postupak.

Kako radi?

Prva i najvažnija stvar koju smo učinili je korištenje varijable Date type za spremanje očekivanog datuma. Sada, ako pokušate pohraniti vrijednost koja nije važeći datum, to će se dogoditi pogreškom "vrsta nepodudarnosti".

Zatim ovu grešku hvatamo pomoćuNa Greška Idi narukovatelj pogreškama.

On Error GoTo Errorhandler dob = Application.InputBox ("Unesite svoj datum rođenja") On Error GoTo 0 

Pomoću pogreške pri uključivanju prelazimo kontrolu na oznaku Errorhandler, koja je neposredno prije naredbe End Sub. Stoga se od korisnika traži da unese valjani datum i podzavršava.

Rukovalac greškama: MsgBox "Unesite valjani datum." Kraj podm 

Ako korisnik stavi valjani datum, tada kontrola teče normalno i ulaz se sprema u varijablu dob. Stavili smo podnaredbu Exit tako da kontrola ne ide u handhaler i završava postupak upravo tamo. Zato stavite sve završne izjave prije izlaska iz pod. I to je to.

Pa da, dečki, na ovaj način ograničavate korisnika da unese samo valjani datum. Javite mi ako imate bilo kakvih nedoumica u vezi datuma VBA ili bilo kojeg drugog upita vezanog uz Excel/VBA. Pitajte nas u odjeljku komentara ispod.

Umetnite vremensku oznaku datuma s VBA | Za unos vremenske oznake kada je određena ćelija ispunjena pomoću ovog VBA koda. Ako unesete bilo koju vrijednost u stupac A, susjedna ćelija u stupcu B automatski će se ispuniti vremenom unosa.

Datum i vrijeme u VBA | Na ovoj stranici pronađite sve teme o datumu i vremenu u VBA -i.

Kako možemo oblikovati datum putem VBA? | Saznajte kako oblikovati datum pomoću VBA u Excelu. Uzmimo primjer kako bismo razumjeli kako i gdje možemo oblikovati ćeliju u kratkom datumu.

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će da radite još brže na Excelu.

Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.

COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste računali određenu vrijednost. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.

Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.