Godta kun gyldige datoer fra bruker i Excel VBA

Anonim

I min siste oppgave ble jeg pålagt å godta innspill fra brukeren. En inngangsverdi var fødselsdatoen, og den må selvfølgelig være en dato. Det jeg gjorde, er å lagre inngangen i en variant datatype. Dette gjorde koden feilfri og koden godtok enhver verdi brukeren ga. Nedenfor er koden:

Dim dob As Variant dob ​​= Application.InputBox ("Skriv inn fødselsdatoen din") 

Dette var selvfølgelig en feil tilnærming ettersom brukeren kan legge inn en verdi som kanskje ikke er en gyldig dato.

Det jeg vil er å få koden til å oppdage en ugyldig dato og be brukeren om å skrive inn en gyldig dato og avslutte underprogrammet.

Her er koden som lar brukerne bare sette en gyldig dato som input.

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

Når du kjører koden ovenfor, blir den bedt om å skrive inn fødselsdatoen din. Hvis du angir en ugyldig dato, vil den be deg om å angi en gyldig dato og avslutte prosedyren.

Hvordan virker det?

Det første og viktigste vi har gjort er å bruke datatypevariabelen for å lagre den forventede datoen. Nå, hvis du prøver å lagre en verdi som ikke er en gyldig dato, vil den gjennom en feil med "type mismatch".

Deretter fanger vi denne feilen ved hjelp avPå feil Gotofeilbehandler.

On Error GoTo Errorhandler dob = Application.InputBox ("Skriv inn din fødselsdato") Ved feil GoTo 0 

Ved å bruke On Error hopper vi kontrollen til taggen Errorhandler, som er like før End Sub -setningen. Så brukeren blir bedt om å angi en gyldig dato og suben slutter.

Feilhåndterer: MsgBox "Skriv inn en gyldig dato." Slutt Sub 

Hvis brukeren setter en gyldig dato, flyter kontrollen normal og inngangen lagres i dob -variabel. Vi har satt Exit -deluttalelsen slik at kontrollen ikke går til feilbehandleren og avslutter prosedyren der. Så legg alle sluttoppgavene før du avslutter sub. Og det er det.

Så ja, folkens, slik begrenser du brukeren til bare å angi en gyldig dato. Gi meg beskjed hvis du er i tvil om VBA -datoer eller andre Excel/VBA -relaterte spørringer. Spør oss i kommentarfeltet nedenfor.

Sett inn dato tidsstempel med VBA | For å angi tidsstempelet da en bestemt celle ble fylt ved hjelp av denne VBA -koden. Hvis du angir en verdi i kolonne A, fylles den tilstøtende cellen i kolonne B opp med tidspunktet for oppføring automatisk.

Dato og tid i VBA | Finn alle emner om dato og klokkeslett i VBA på denne siden.

Hvordan kan vi formatere dato gjennom VBA? | Lær hvordan du formaterer dato ved hjelp av VBA i Excel. La oss ta et eksempel for å forstå hvordan og hvor vi kan formatere cellen i kort datoenummer.

Populære artikler:

50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.

VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.

COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.

Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.