Nella mia recente attività, mi è stato richiesto di accettare l’input dell’utente. Un valore di input era la data di nascita e, ovviamente, deve essere una data.

Quello che stavo facendo, è archiviare 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("Enter Your Date of Birth")

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

Quello che voglio è fare in modo che il mio codice rilevi qualsiasi data non valida e chiedere 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("Enter Your Date of Birth")

On Error GoTo 0

Debug.Print dob

Exit Sub

Errorhandler:

MsgBox "Please enter a valid date."

End Sub

Quando esegui il codice sopra, ti verrà chiesto 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.

imageHow does it work?* The first and most important thing we have done is to use the Date type variable to store the expected date. Now, if you try to store a value that is not a valid date, it will through an error of “type mismatch”.

Successivamente, rileviamo questo errore utilizzando il gestore degli errori On Error Goto *.

On Error GoTo Errorhandler

dob = Application.InputBox("Enter Your Date of Birth")

On Error GoTo 0

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

Errorhandler:

MsgBox "Please enter a valid date."

End Sub

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 al gestore degli errori e termini la procedura proprio lì. Quindi metti tutte le tue dichiarazioni finali prima di exit sub. E questo è tutto.

Quindi sì ragazzi, è così che limiti l’utente a inserire solo una data valida.

Fammi sapere se hai dubbi sulle date VBA o su qualsiasi altra query relativa a Excel / VBA. Chiedici nella sezione commenti qui sotto.

Articoli correlati:

link: / vba-insert-date-time-stamp-with-vba [Insert Date Time Stamp with VBA] | Per inserire il timestamp quando una cella specifica è stata riempita utilizzando questo codice VBA. Se si immette un valore nella colonna A, la cella adiacente nella colonna B si riempirà automaticamente con l’ora di immissione.

`link: / excel-macros-and-vba-date-time-in-vb [Data e ora in VBA] | Trova tutti gli argomenti su Data e ora in VBA in questa pagina.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel] | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.

La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.