Функцията VBA InputBox е полезна за получаване на единична информация, въведена от потребителя в Excle 2016. Тази информация може да бъде стойност, текстов низ или дори адрес на диапазон. Това е добра алтернатива на разработването на UserForm, когато трябва да получите само една стойност.
Синтаксис на InputBox
Ето опростена версия на синтаксиса на функцията InputBox:
InputBox(prompt[, title][, default])
Функцията InputBox приема изброените тук аргументи.
Аргумент |
Какво засяга |
Подкана |
Текстът, показан в полето за въвеждане |
Заглавие |
Текстът, показан в заглавната лента на полето за въвеждане
(по избор) |
По подразбиране |
Стойността по подразбиране за въвеждането на потребителя (по избор) |
Пример за InputBox
Ето изявление, което показва как можете да използвате функцията InputBox:
TheName = InputBox("Как е вашето име?", "Поздрави")
Когато изпълните този VBA израз, Excel показва този диалогов прозорец. Забележете, че този пример използва само първите два аргумента и не предоставя стойност по подразбиране. Когато потребителят въведе стойност и щракне върху OK, кодът присвоява стойността на променливата TheName.
Функцията InputBox показва този диалогов прозорец.
Следващият пример използва третия аргумент и предоставя стойност по подразбиране. Стойността по подразбиране е потребителското име, съхранено от Excel (свойството UserName на обекта Application).
Под GetName()
Затъмнете името като низ
TheName = InputBox("Как е вашето име?", _
„Поздрави“, Application.UserName)
Край под
InputBox винаги показва бутон Отказ. Ако потребителят щракне върху Отказ, функцията InputBox връща празен низ.
Функцията InputBox на VBA винаги връща низ, така че ако трябва да получите стойност, кодът ви трябва да направи допълнителна проверка. Следващият пример използва функцията InputBox, за да получи число. Той използва функцията IsNumeric, за да провери дали низът е число. Ако низът съдържа число, всичко е наред. Ако въвеждането на потребителя не може да се интерпретира като число, кодът показва поле за съобщение.
Поддобавени листове()
Dim Prompt като низ
Затъмнен надпис като низ
Dim DefValue As Long
Dim NumSheets като низ
Prompt = „Колко листа искате да добавите?“
Надпис = "Кажи ми..."
DefValue = 1
NumSheets = InputBox (подкана, надпис, DefValue)
Ако NumSheets = ““ Тогава Exit Sub 'Canceled
Ако IsNumeric(NumSheets) Тогава
Ако NumSheets > 0 Тогава Sheets.Add Count:=NumSheets
иначе
MsgBox „Невалиден номер“
Край, ако
Край под
Вижте диалоговия прозорец, който създава тази рутина.
Друг пример за използване на функцията InputBox.
Друг тип InputBox
Информацията, представена тук, се отнася за функцията InputBox на VBA. Microsoft изглежда любовта объркване, така че можете да имате достъп до InputBox метод , който е метод на обекта за кандидатстване.
Едно голямо предимство на използването на метода Application InputBox е, че вашият код може да подкани за избор на диапазон. След това потребителят може да избере диапазона в работния лист, като маркира клетките. Ето един бърз пример, който подканва потребителя да избере диапазон:
Под GetRange()
Дим Rng като обхват
При грешка Продължете напред
Задайте Rng = Application.InputBox _
(подкана:=“Посочете диапазон:”, Тип:=8)
Ако Rng е нищо, тогава излезте от Sub
MsgBox „Избрахте диапазон“ & Rng.Address
Край под
Ето как изглежда.
Използване на метода Application InputBox за получаване на диапазон.
В този прост пример кодът казва на потребителя адреса на избрания диапазон. В реалния живот вашият код всъщност би направил нещо полезно с избрания диапазон. Хубавото нещо в този пример е, че Excel се грижи за обработката на грешките. Ако въведете нещо, което не е диапазон, Excel ви казва за това и ви позволява да опитате отново.
Методът Application.InputBox е подобен на функцията InputBox на VBA, но има и някои разлики. Проверете системата за помощ за пълни подробности.