Прихвати само важеће датуме од корисника у програму Екцел ВБА

Anonim

У свом недавном задатку од мене је било потребно да прихватим унос од корисника. Једна улазна вредност био је датум рођења и то, наравно, мора бити датум. Оно што сам ја радио је чување уноса у варијантном типу података. Ово је учинило код без грешака и код је прихватио било коју вредност коју је корисник дао. Испод је код:

Дим доб као варијанта доб = Апплицатион.ИнпутБок ("Унесите свој датум рођења") 

Ово је, наравно, био погрешан приступ јер корисник може унети било коју вредност која можда није важећи датум.

Оно што желим је да учиним да мој код открије сваки неважећи датум и затражи од корисника да унесе важећи датум и прекине потпрограм.

Ево кода који омогућава корисницима да уносе само важећи датум.

Суб цхецк_дате () Дим доб Ас Дате Он Еррор ГоТо Еррорхандлер доб = Апплицатион.ИнпутБок ("Унесите свој датум рођења") Он Еррор ГоТо 0 Дебуг.Принт доб Екит Суб Еррорхандлер: МсгБок "Молимо унесите важећи датум." Енд Суб 

Када покренете горњи код, од вас ће се тражити да унесете датум рођења. Ако унесете неважећи датум, од вас ће се тражити да унесете важећи датум и завршите процедуру.

Како то функционише?

Прва и најважнија ствар коју смо урадили је да употребимо променљиву Тип датума за складиштење очекиваног датума. Сада, ако покушате да сачувате вредност која није важећи датум, то ће се догодити кроз грешку „неслагање типова“.

Затим ухватимо ову грешку користећиНа Грешка Иди наруковалац грешкама.

Он Еррор ГоТо Еррорхандлер доб = Апплицатион.ИнпутБок ("Унесите свој датум рођења") Он Еррор ГоТо 0 

Помоћу грешке при укључивању прелазимо контролу на ознаку Еррорхандлер, која је непосредно пре наредбе Енд Суб. Зато се од корисника тражи да унесе важећи датум и подзавршава се.

Руковалац грешкама: МсгБок "Унесите исправан датум." Енд Суб 

Ако корисник унесе важећи датум, контрола тече нормално и улаз се чува у варијабли доб. Ставили смо поднаредбу Екит тако да контрола не оде до руковаоца грешака и ту заврши процедуру. Зато ставите све завршне изјаве пре изласка из под. И то је то.

Па да, момци, на овај начин ограничавате корисника да унесе само важећи датум. Обавестите ме ако имате било каквих недоумица у вези са датумима ВБА или било којим другим упитом везаним за Екцел/ВБА. Питајте нас у одељку за коментаре испод.

Уметните временску ознаку датума са ВБА | Да бисте унели временску ознаку када је одређена ћелија попуњена помоћу овог ВБА кода. Ако унесете било коју вредност у колону А, суседна ћелија у колони Б ће се аутоматски попунити са временом уноса.

Датум и време у ВБА | На овој страници пронађите све теме о датуму и времену у ВБА.

Како можемо да форматирамо датум путем ВБА? | Научите како да форматирате датум помоћу ВБА у Екцелу. Узмимо пример да бисмо разумели како и где можемо да обликујемо ћелију у кратком датуму.

Популарни чланци:

50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће учинити да радите још брже на Екцелу.

Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.

ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате филтрирати податке да бисте рачунали одређену вредност. Цоунтиф функција је неопходна за припрему ваше контролне табле.

Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.