Oma hiljutises ülesandes pidin nõustuma kasutaja sisendiga. Üks sisendväärtus oli sünnikuupäev ja see peab muidugi olema kuupäev. See, mida ma tegin, on sisendi salvestamine varianditüüpi. See muutis koodi veatuks ja kood aktsepteeris kasutaja antud väärtust. Allpool on kood:
Dim dob As Variant dob = Application.InputBox ("Sisestage oma sünnikuupäev")
See oli muidugi vale lähenemine, kuna kasutaja saab sisestada mis tahes väärtuse, mis ei pruugi olla kehtiv kuupäev.
Soovin, et minu kood tuvastaks kehtetu kuupäeva ja paluks kasutajal sisestada kehtiv kuupäev ja lõpetada alamprogramm.
Siin on kood, mis võimaldab kasutajatel sisestada sisendiks ainult kehtiva kuupäeva.
Sub check_date () Dim check As Date On Error GoTo Errorhandler dob = Application.InputBox ("Sisestage oma sünnikuupäev") On Error GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Palun sisestage kehtiv kuupäev." End Sub
Kui käivitate ülaltoodud koodi, palub see teil sisestada oma sünnikuupäeva. Kui sisestate kehtetu kuupäeva, palutakse teil sisestada kehtiv kuupäev ja protseduur lõpetada.
Kuidas see töötab?
Esimene ja kõige olulisem asi, mida oleme teinud, on kasutada kuupäeva tüübi muutujat oodatud kuupäeva salvestamiseks. Kui proovite salvestada väärtust, mis ei ole kehtiv kuupäev, siis ilmneb see veaga "tüüp ei vasta".
Järgmisena tabame selle vea, kasutadesViga Gotoveakäitleja.
On Error GoTo Errorhandler dob = Application.InputBox ("Sisestage oma sünnikuupäev") Viga GoTo 0
Kasutades viga on On, hüppame juhtseadme juurde märgendile Errorhandler, mis asub vahetult enne lauset End Sub. Seega palutakse kasutajal sisestada kehtiv kuupäev ja alam lõpeb.
Veakäitleja: MsgBox "Palun sisestage kehtiv kuupäev." End Sub
Kui kasutaja paneb kehtiva kuupäeva, voolab juhtimine normaalselt ja sisend salvestatakse muutuja dob. Oleme pannud alamavalduse Exit nii, et juhtelement ei läheks veakäitlejale ja lõpetaks protseduuri just seal. Nii et pange oma lõpplaused enne alammenüüst väljumist. Ja see ongi kõik.
Nii et jah, poisid, nii piirate kasutajat ainult kehtiva kuupäeva sisestamisega. Andke mulle teada, kui teil on kahtlusi VBA kuupäevade või mõne muu Exceli/VBA -ga seotud päringu osas. Küsige meilt allpool kommentaaride jaotises.
Sisestage kuupäeva ja kellaaja tempel koos VBA -ga | Selle VBA koodi abil konkreetse lahtri täitmise ajatempli sisestamiseks. Kui sisestate veergu A mis tahes väärtuse, täidetakse veeru B külgnev lahter automaatselt sisestamise ajaga.
Kuupäev ja kellaaeg VBA -s | Sellelt lehelt leiate kõik VBA kuupäeva ja kellaaja teemad.
Kuidas vormindada kuupäeva VBA kaudu? | Siit saate teada, kuidas Excelis VBA -d vormindada. Võtame näite, et mõista, kuidas ja kus saame lahtrit lühikese kuupäeva numbriga vormindada.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.