Функција ВБА ИнпутБок је корисна за добијање једне информације коју је корисник откуцао у Екцле 2016. Те информације могу бити вредност, текстуални низ или чак адреса опсега. Ово је добра алтернатива развоју корисничког обрасца када треба да добијете само једну вредност.
ИнпутБок синтакса
Ево поједностављене верзије синтаксе функције ИнпутБок:
ИнпутБок(промпт[, наслов][, подразумевано])
Функција ИнпутБок прихвата овде наведене аргументе.
Расправа |
На шта утиче |
Промпт |
Текст приказан у пољу за унос |
Наслов |
Текст приказан у насловној траци поља за унос
(опционо) |
Уобичајено |
Подразумевана вредност за унос корисника (опционо) |
Пример ИнпутБок-а
Ево изјаве која показује како можете да користите функцију ИнпутБок:
ТхеНаме = ИнпутБок(“Како се зовеш?”, “Поздрав”)
Када извршите ову ВБА изјаву, Екцел приказује овај дијалог. Приметите да овај пример користи само прва два аргумента и не даје подразумевану вредност. Када корисник унесе вредност и кликне на ОК, код додељује вредност променљивој ТхеНаме.
Функција ИнпутБок приказује овај дијалошки оквир.
Следећи пример користи трећи аргумент и даје подразумевану вредност. Подразумевана вредност је корисничко име које чува Екцел (својство УсерНаме објекта Апплицатион).
Суб ГетНаме()
Дим ТхеНаме као стринг
ТхеНаме = ИнпутБок(“Како се зовеш?”, _
„Поздрав“, Апплицатион.УсерНаме)
Енд Суб
ИнпутБок увек приказује дугме Откажи. Ако корисник кликне на Откажи, функција ИнпутБок враћа празан стринг.
ВБА-ова функција ИнпутБок увек враћа стринг, тако да ако треба да добијете вредност, ваш код треба да изврши додатну проверу. Следећи пример користи функцију ИнпутБок за добијање броја. Користи ИсНумериц функцију да провери да ли је стринг број. Ако стринг садржи број, све је у реду. Ако се унос корисника не може протумачити као број, код приказује оквир са поруком.
Суб АддСхеетс()
Дим Промпт као стринг
Дим Цаптион Ас Стринг
Дим ДефВалуе Ас Лонг
Дим НумСхеетс као стринг
Промпт = „Колико листова желите да додате?“
Натпис = "Реци ми..."
ДефВалуе = 1
НумСхеетс = ИнпутБок (Промпт, Цаптион, ДефВалуе)
Ако је НумСхеетс = „“ Онда Екит Суб 'Цанцелед
Ако је Нумериц(НумСхеетс) Онда
Ако је НумСхеетс > 0 онда Схеетс.Адд Цоунт:=НумСхеетс
Иначе
МсгБок „Неважећи број“
Крај Ако
Енд Суб
Погледајте дијалошки оквир који производи ова рутина.
Још један пример коришћења функције ИнпутБок.
Друга врста ИнпутБок-а
Информације представљене овде се односе на ВБА-ову функцију ИнпутБок. Чини се да Мицрософт воли конфузију, тако да такође имате приступ методи ИнпутБок , која је метод објекта Апплицатион.
Једна велика предност коришћења методе Апплицатион ИнпутБок је то што ваш код може затражити избор опсега. Корисник затим може изабрати опсег на радном листу тако што ће означити ћелије. Ево кратког примера који од корисника тражи да одабере опсег:
Под ГетРанге()
Дим Рнг Ас Ранге
У случају грешке Настави даље
Поставите Рнг = Апплицатион.ИнпутБок _
(промпт:=“Наведите опсег:”, Тип:=8)
Ако Рнг није ништа, изађите из Суб
МсгБок „Изабрали сте опсег“ & Рнг.Аддресс
Енд Суб
Овако то изгледа.
Коришћење методе Апплицатион ИнпутБок за добијање опсега.
У овом једноставном примеру, код говори кориснику адресу опсега који је изабран. У стварном животу, ваш код би заправо урадио нешто корисно са изабраним опсегом. Лепа ствар у овом примеру је то што се Екцел брине о руковању грешкама. Ако унесете нешто што није опсег, Екцел вам говори о томе и дозвољава вам да покушате поново.
Метод Апплицатион.ИнпутБок је сличан ВБА-овој функцији ИнпутБок, али такође има неке разлике. Проверите систем помоћи за потпуне детаље.