In mijn recente taak moest ik invoer van de gebruiker accepteren. Een invoerwaarde was de geboortedatum en dit moet natuurlijk een datum zijn. Wat ik aan het doen was, is de invoer opslaan in een variant gegevenstype. Dit maakte de code foutloos en de code accepteerde elke waarde die de gebruiker gaf. Hieronder staat de code:
Dim dob As Variant dob = Application.InputBox("Voer uw geboortedatum in")
Dit was natuurlijk een onjuiste benadering omdat de gebruiker elke waarde kan invoeren die mogelijk geen geldige datum is.
Wat ik wil is dat mijn code elke ongeldige datum detecteert en de gebruiker vraagt om een geldige datum in te voeren en de subroutine te beëindigen.
Hier is de code waarmee gebruikers alleen een geldige datum als invoer kunnen invoeren.
Sub check_date() Dim dob As Datum op fout GoTo Errorhandler dob = Application.InputBox("Voer uw geboortedatum in") On Error GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Voer een geldige datum in." Einde sub
Wanneer u de bovenstaande code uitvoert, wordt u gevraagd uw geboortedatum in te voeren. Als u een ongeldige datum invoert, wordt u gevraagd een geldige datum in te voeren en de procedure te beëindigen.
Hoe werkt het?
Het eerste en belangrijkste dat we hebben gedaan, is de variabele Datumtype gebruiken om de verwachte datum op te slaan. Als u nu een waarde probeert op te slaan die geen geldige datum is, zal dit door een fout van "type mismatch" gebeuren.
Vervolgens vangen we deze fout op met behulp van deBij fout Ga naarfout afhandeling.
Bij fout GoTo Errorhandler dob = Application.InputBox ("Voer uw geboortedatum in") Bij fout GoTo 0
Met behulp van de On Error springen we het besturingselement naar de tag Errorhandler, die zich net voor de End Sub-instructie bevindt. Dus de gebruiker wordt gevraagd een geldige datum in te voeren en de sub eindigt.
Errorhandler: MsgBox "Voer een geldige datum in." Einde sub
Als de gebruiker een geldige datum invoert, verloopt de besturing normaal en wordt de invoer opgeslagen in de dob-variabele. We hebben het substatement Exit geplaatst, zodat de besturing niet naar de errorhandler gaat en de procedure daar beëindigt. Dus zet je alle eindstatements voor exit sub. En dat is het.
Dus ja jongens, zo beperk je de gebruiker om alleen een geldige datum in te voeren. Laat het me weten als je twijfels hebt over VBA-datums of een andere Excel/VBA-gerelateerde vraag. Vraag het ons in de comments hieronder.
Datum-tijdstempel invoegen met VBA | Om het tijdstempel in te voeren wanneer een specifieke cel werd gevuld met behulp van deze VBA-code. Als u een waarde invoert in kolom A, wordt de aangrenzende cel in kolom B automatisch gevuld met het tijdstip van invoer.
Datum en tijd in VBA | Vind alle onderwerpen over datum en tijd in VBA op deze pagina.
Hoe kunnen we de datum opmaken via VBA? | Leer hoe u de datum kunt opmaken met VBA in Excel. Laten we een voorbeeld nemen om te begrijpen hoe en waar we de cel kunnen opmaken in een kort datumnummer.
Populaire artikels:
50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.
De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.
AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.
Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.