Acceptați datele valabile numai de la utilizator în Excel VBA

Anonim

În sarcina mea recentă, mi s-a cerut să accept date de la utilizator. O valoare de intrare a fost data nașterii și, desigur, trebuie să fie o dată. Ceea ce făceam, este stocarea intrării într-un tip de date variantă. Acest lucru a făcut ca codul să nu aibă erori și codul acceptă orice valoare pe care o acorda utilizatorul. Mai jos este codul:

Dim dob As Variant dob ​​= Application.InputBox („Introduceți data nașterii”) 

Aceasta a fost, desigur, o abordare incorectă, deoarece utilizatorul poate introduce orice valoare care poate să nu fie o dată validă.

Ceea ce vreau este să fac codul meu să detecteze orice dată nevalidă și să cer utilizatorului să introducă o dată validă și să încheie subrutina.

Iată codul care permite utilizatorilor să introducă doar o dată validă ca intrare.

Sub check_date () Dim dob As Data On Error GoTo Errorhandler dob = Application.InputBox ("Enter Your Data of Birth") On Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Vă rugăm să introduceți o dată validă." Sfârșitul Sub 

Când rulați codul de mai sus, acesta vă va cere să introduceți data nașterii. Dacă introduceți o dată nevalidă, aceasta vă va cere să introduceți o dată validă și să încheiați procedura.

Cum functioneazã?

Primul și cel mai important lucru pe care l-am făcut este să folosim variabila de tip Date pentru a stoca data așteptată. Acum, dacă încercați să stocați o valoare care nu este o dată validă, aceasta va avea loc printr-o eroare de „tip nepotrivire”.

Apoi, detectăm această eroare folosindLa Eroare Mergețigestionarea erorilor.

On Error GoTo Errorhandler dob = Application.InputBox („Introduceți data nașterii”) On Error GoTo 0 

Folosind On Error, saltăm controlul către eticheta Errorhandler, care este chiar înainte de declarația End Sub. Deci, utilizatorul este rugat să introducă o dată validă și sub-terminarea.

Errorhandler: MsgBox "Vă rugăm să introduceți o dată validă." Sfârșitul Sub 

Dacă utilizatorul pune o dată validă, atunci controlul curge normal și intrarea este salvată în variabila dob. Am pus instrucțiunea Exit sub astfel încât controlul să nu meargă la handler și să încheie procedura chiar acolo. Deci, puneți toate instrucțiunile de final înainte de exit sub. Si asta e.

Deci, băieți, așa restricționați utilizatorul să introducă doar o dată validă. Spuneți-mi dacă aveți îndoieli cu privire la datele VBA sau orice altă interogare legată de Excel / VBA. Întrebați-ne în secțiunea de comentarii de mai jos.

Introduceți Data Time Time cu VBA | Pentru a introduce marca de timp când a fost completată o anumită celulă folosind acest cod VBA. Dacă introduceți orice valoare în coloana A, celula alăturată din coloana B se va completa automat cu ora de introducere.

Data și ora în VBA | Găsiți toate subiectele despre Data și Ora în VBA pe această pagină.

Cum putem formata data prin VBA? | Aflați cum să formatați data folosind VBA în Excel. Să luăm un exemplu pentru a înțelege cum și unde putem formata celula cu numărul de dată scurtă.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu este nevoie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.