Accepter kun gyldige datoer fra bruger i Excel VBA

Anonim

I min seneste opgave blev jeg forpligtet til at acceptere input fra brugeren. En inputværdi var fødselsdatoen, og den skal selvfølgelig være en dato. Hvad jeg lavede, er at gemme input i en variant datatype. Dette gjorde koden fejlfri, og koden accepterede enhver værdi, brugeren gav. Nedenfor er koden:

Dim dob As Variant dob ​​= Application.InputBox ("Indtast din fødselsdato") 

Dette var naturligvis en forkert fremgangsmåde, da brugeren kan indtaste enhver værdi, der muligvis ikke er en gyldig dato.

Hvad jeg vil, er at få min kode til at registrere en ugyldig dato og bede brugeren om at indtaste en gyldig dato og afslutte underprogrammet.

Her er koden, der giver brugerne mulighed for kun at angive en gyldig dato som input.

Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Indtast din fødselsdato") På fejl GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Angiv en gyldig dato." Afslut Sub 

Når du kører ovenstående kode, bliver den bedt om at indtaste din fødselsdato. Hvis du indtaster en ugyldig dato, vil den bede dig om at indtaste en gyldig dato og afslutte proceduren.

Hvordan virker det?

Den første og vigtigste ting, vi har gjort, er at bruge datatypevariablen til at gemme den forventede dato. Hvis du nu prøver at gemme en værdi, der ikke er en gyldig dato, vil den gennem en fejl med "type mismatch".

Dernæst fanger vi denne fejl ved hjælp afVed fejl Gotofejlbehandler.

On Error GoTo Errorhandler dob = Application.InputBox ("Indtast din fødselsdato") Ved fejl GoTo 0 

Ved hjælp af On Error springer vi kontrollen til mærket Errorhandler, som er lige før End Sub -sætningen. Så brugeren bliver bedt om at indtaste en gyldig dato, og suben slutter.

Fejlhåndterer: MsgBox "Indtast venligst en gyldig dato." Afslut Sub 

Hvis brugeren angiver en gyldig dato, flyder kontrollen normal, og input gemmes i dob -variabel. Vi har sat Exit -undersætningen, så kontrollen ikke går til fejlbehandler og afslutter proceduren lige der. Så sæt dine alle sluterklæringer før exit sub. Og det er det.

Så ja fyre, sådan begrænser du brugeren til kun at indtaste en gyldig dato. Lad mig vide, hvis du er i tvivl om VBA -datoer eller andre Excel/VBA -relaterede forespørgsler. Spørg os i kommentarfeltet herunder.

Indsæt dato tidsstempel med VBA | For at indtaste tidsstemplet, da en bestemt celle blev udfyldt ved hjælp af denne VBA -kode. Hvis du indtaster en værdi i kolonne A, udfyldes den tilstødende celle i kolonne B automatisk med tidspunktet for indtastning.

Dato og tid i VBA | Find alle emner om dato og tid i VBA på denne side.

Hvordan kan vi formatere dato via VBA? | Lær, hvordan du formaterer dato ved hjælp af VBA i Excel. Lad os tage et eksempel for at forstå, hvordan og hvor vi kan formatere cellen i kort datonummer.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.