Pieņemiet derīgus datumus tikai no lietotāja programmā Excel VBA

Anonim

Veicot neseno uzdevumu, man bija jāpieņem lietotāja ievade. Viena ievades vērtība bija dzimšanas datums, un tai, protams, ir jābūt datumam. Tas, ko es darīju, ir ievades saglabāšana datu tipa variantā. Tas padarīja kodu bez kļūdām, un kods pieņēma jebkuru vērtību, ko sniedza lietotājs. Zemāk ir kods:

Dim dob As Variant dob ​​= Application.InputBox ("Ievadiet savu dzimšanas datumu") 

Tā, protams, bija nepareiza pieeja, jo lietotājs var ievadīt jebkuru vērtību, kas, iespējams, nav derīgs.

Es vēlos likt kodam atklāt jebkuru nederīgu datumu un lūgt lietotājam ievadīt derīgu datumu un pārtraukt apakšprogrammu.

Šeit ir kods, kas lietotājiem ļauj ievadīt tikai derīgu datumu.

Sub check_date () Dim bed As Date On Error GoTo Errorhandler dob = Application.InputBox ("Ievadiet savu dzimšanas datumu") On Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Lūdzu, ievadiet derīgu datumu." Beigt apakš 

Palaižot iepriekš minēto kodu, tas prasīs ievadīt savu dzimšanas datumu. Ja ievadāt nederīgu datumu, tā lūgs ievadīt derīgu datumu un pabeigt procedūru.

Kā tas darbojas?

Pirmā un vissvarīgākā lieta, ko esam paveikuši, ir izmantot datuma tipa mainīgo, lai saglabātu paredzamo datumu. Tagad, ja mēģināsit saglabāt vērtību, kas nav derīgs datums, tiks parādīta kļūda "tipa neatbilstība".

Tālāk mēs pamanām šo kļūdu, izmantojotPar kļūdu Gotokļūdu apstrādātājs.

Par kļūdu GoTo Errorhandler dob = Application.InputBox ("Ievadiet savu dzimšanas datumu") Par kļūdu GoTo 0 

Izmantojot On Error, mēs pārietam uz tagu Errorhandler, kas atrodas tieši pirms End Sub paziņojuma. Tātad lietotājam tiek lūgts ievadīt derīgu datumu, un apakšdaļa beidzas.

Kļūdu apstrādātājs: MsgBox "Lūdzu, ievadiet derīgu datumu." Beigt apakš 

Ja lietotājs ievieto derīgu datumu, vadīkla plūst normāli un ievade tiek saglabāta mainīgajā. Mēs esam ievietojuši apakšpaziņojumu Iziet, lai vadīkla nenonāktu pie kļūdu apstrādātāja un pabeigtu procedūru tieši tur. Tāpēc ievietojiet visus galīgos paziņojumus pirms iziešanas apakš. Un tas arī viss.

Tātad, jā, puiši, šādi jūs ierobežojat lietotāju, lai tas ievadītu tikai derīgu datumu. Ļaujiet man zināt, ja jums ir šaubas par VBA datumiem vai kādu citu ar Excel/VBA saistītu vaicājumu. Jautājiet mums komentāru sadaļā zemāk.

Ievietojiet datuma un laika zīmogu ar VBA | Lai ievadītu laika zīmogu, kad tika aizpildīta konkrēta šūna, izmantojot šo VBA kodu. Ja A slejā ievadāt kādu vērtību, B slejas blakus esošā šūna tiks automātiski aizpildīta ar ievadīšanas laiku.

Datums un laiks VBA | Šajā lapā atrodiet visas VBA datuma un laika tēmas.

Kā mēs varam formatēt datumu, izmantojot VBA? | Uzziniet, kā formatēt datumu, izmantojot programmu VBA programmā Excel. Ņemsim piemēru, lai saprastu, kā un kur mēs varam formatēt šūnu īsā datuma numurā.

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti | Ātrāk izpildiet savu uzdevumu. Šie 50 īsceļi ļaus jums strādāt vēl ātrāk programmā Excel.

Funkcija VLOOKUP programmā Excel | Šī ir viena no visbiežāk izmantotajām un populārākajām Excel funkcijām, kas tiek izmantota, lai meklētu vērtību no dažādiem diapazoniem un lapām.

COUNTIF programmā Excel 2016 | Saskaitiet vērtības ar nosacījumiem, izmantojot šo apbrīnojamo funkciju. Jums nav jāfiltrē dati, lai uzskaitītu konkrētu vērtību. Skaitītāja funkcija ir būtiska, lai sagatavotu informācijas paneli.

Kā lietot SUMIF funkciju programmā Excel | Šī ir vēl viena būtiska informācijas paneļa funkcija. Tas palīdz apkopot vērtības noteiktos apstākļos.