Äskettäisessä tehtävässäni minun oli hyväksyttävä käyttäjän antama panos. Yksi syöttöarvo oli syntymäaika ja sen on tietysti oltava päivämäärä. Mitä tein, olen tallentanut syötteen muunnostyypiksi. Tämä teki koodista virheettömän ja koodi hyväksyi käyttäjän antaman arvon. Alla koodi:
Dim dob As Variant dob = Application.InputBox ("Anna syntymäaikasi")
Tämä oli tietysti väärä lähestymistapa, koska käyttäjä voi syöttää minkä tahansa arvon, joka ei ehkä ole kelvollinen päivämäärä.
Haluan, että koodini havaitsee virheellisen päivämäärän ja pyytää käyttäjää syöttämään kelvollisen päivämäärän ja lopettamaan aliohjelman.
Tässä on koodi, jonka avulla käyttäjät voivat syöttää vain kelvollisen päivämäärän.
Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Syötä syntymäaikasi") Virhe GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Anna kelvollinen päivämäärä." End Sub
Kun suoritat yllä olevan koodin, se pyytää sinua syöttämään syntymäaikasi. Jos syötät virheellisen päivämäärän, se pyytää sinua syöttämään kelvollisen päivämäärän ja lopettamaan menettelyn.
Kuinka se toimii?
Ensimmäinen ja tärkein asia, jonka olemme tehneet, on käyttää päivämäärätyyppimuuttujaa odotetun päivämäärän tallentamiseen. Jos yrität nyt tallentaa arvoa, joka ei ole kelvollinen päivämäärä, tapahtuu virhe "tyyppi ei täsmää".
Seuraavaksi havaitsemme tämän virheen käyttämälläVirhe Gotovirheenkäsittelijä.
Virhe GoTo Errorhandler dob = Application.InputBox ("Anna syntymäaikasi") Virhe GoTo 0
On Error -toiminnon avulla hyppäämme ohjausobjektin kohdalle Errorhandler, joka on juuri ennen End Sub -lausetta. Käyttäjää pyydetään siis syöttämään kelvollinen päivämäärä ja alaosa päättyy.
Virheenkäsittelijä: MsgBox "Anna kelvollinen päivämäärä." End Sub
Jos käyttäjä antaa kelvollisen päivämäärän, ohjaus kulkee normaalisti ja syöte tallennetaan dob -muuttujaan. Olemme asettaneet Exit -alalausekkeen, jotta ohjaus ei mene virheenkäsittelijälle ja lopettaa menettelyn siellä. Joten laita kaikki lopulliset lausunnot ennen poistumista sub. Ja siinä kaikki.
Joten kyllä kaverit, tällä tavalla rajoitat käyttäjän syöttämään vain kelvollisen päivämäärän. Kerro minulle, jos sinulla on epäilyksiä VBA -päivämääristä tai muista Excel/VBA -aiheisista kyselyistä. Kysy meiltä alla olevasta kommenttiosasta.
Lisää päivämäärä- ja aikaleima VBA: lla | Syötä aikaleima, kun tietty solu täytettiin käyttämällä tätä VBA -koodia. Jos syötät arvon sarakkeeseen A, sarakkeen B viereinen solu täyttyy automaattisesti syöttöajalla.
Päivämäärä ja aika VBA: ssa | Täältä löydät kaikki VBA: n päivämäärän ja kellonajan aiheet.
Miten voimme muotoilla päivämäärän VBA: n kautta? | Opi päivämäärän muotoilu Excelin VBA: n avulla. Otetaan esimerkki ymmärtääksemme, miten ja missä voimme muotoilla solun lyhyellä päivämääränumerolla.
Suosittuja artikkeleita:
50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.
VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.
COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietojasi tietyn arvon laskemiseksi. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.
SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.