Accetta date valide solo dall'utente in Excel VBA

Anonim

Nella mia attività recente, mi è stato richiesto di accettare l'input dall'utente. Un valore di input era la data di nascita e, ovviamente, deve essere una data. Quello che stavo facendo è memorizzare l'input in un tipo di dati variante. Ciò ha reso il codice privo di errori e il codice accettava qualsiasi valore fornito dall'utente. Di seguito il codice:

Dim dob As Variant dob ​​= Application.InputBox ("Inserisci la tua data di nascita") 

Questo era, ovviamente, un approccio errato in quanto l'utente può inserire qualsiasi valore che potrebbe non essere una data valida.

Quello che voglio è che il mio codice rilevi qualsiasi data non valida e chieda all'utente di inserire una data valida e terminare la subroutine.

Ecco il codice che consente agli utenti di inserire solo una data valida come input.

Sub check_date() Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox("Inserisci la tua data di nascita") On Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Inserire una data valida." Fine sottotitolo 

Quando esegui il codice sopra, ti chiederà di inserire la tua data di nascita. Se inserisci una data non valida, ti verrà chiesto di inserire una data valida e terminare la procedura.

Come funziona?

La prima e più importante cosa che abbiamo fatto è usare la variabile di tipo Date per memorizzare la data prevista. Ora, se provi a memorizzare un valore che non è una data valida, verrà visualizzato un errore di "tipo non corrispondente".

Successivamente, catturiamo questo errore usando ilIn caso di errore Vai agestore degli errori.

In caso di errore GoTo Errorhandler dob = Application.InputBox ("Inserisci la tua data di nascita") In caso di errore GoTo 0 

Usando On Error saltiamo il controllo al tag Errorhandler, che è appena prima dell'istruzione End Sub. Quindi all'utente viene chiesto di inserire una data valida e il sottotitolo termina.

Errorhandler: MsgBox "Inserire una data valida." Fine sottotitolo 

Se l'utente inserisce una data valida, il controllo scorre normalmente e l'input viene salvato nella variabile dob. Abbiamo inserito l'istruzione secondaria Exit in modo che il controllo non vada a errorhandler e termini la procedura proprio lì. Quindi metti tutte le tue istruzioni end prima di exit sub. E questo è tutto.

Quindi sì ragazzi, questo è il modo in cui limiti l'utente a inserire solo una data valida. Fammi sapere se hai dei dubbi sulle date VBA o su qualsiasi altra query relativa a Excel/VBA. Chiedici nella sezione commenti qui sotto.

Inserisci data e ora con VBA | Per inserire il timestamp quando una cella specifica è stata riempita utilizzando questo codice VBA. Se inserisci un valore nella colonna A, la cella adiacente nella colonna B si riempirà automaticamente con l'ora di immissione.

Data e ora in VBA | Trova tutti gli argomenti su Data e ora in VBA in questa pagina.

Come possiamo formattare la data tramite VBA? | Scopri come formattare la data utilizzando VBA in Excel. Facciamo un esempio per capire come e dove possiamo formattare la cella in short date number.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.