Excel VBA InputBox

Въпреки че в повечето случаи използвате данните, които вече са при вас, понякога изпадате в ситуация, в която искате потребителят да въведе данни като име, възраст и т.н. вид лична информация. Този вид входяща информация е необходима понякога, когато провеждаме проучване и трябва да преразгледаме безпристрастното мнение на хората.

С помощта на InputBox на Excel VBA можем да получим входните данни от потребителя. Както подсказва името, InputBox работи като изскачащо поле, което изисква от потребителя да подаде определена информация.

Синтаксис за VBA InputBox

Следва синтаксисът за VBA InputBox:

Където,

  • Подкана - Съобщение, което се показва на потребителя. Това е единственият задължителен аргумент, останалите останали аргументи са незадължителни.
  • Заглавие - Това е заглавието, което се появява в диалоговия прозорец след успешното изпълнение на оператора InputBox. Ако не е дадено, системата по подразбиране отпечатва „Microsoft Excel“ като заглавие.
  • По подразбиране - това е стойността по подразбиране, която идва в диалоговия прозорец. Можем да го запазим и за нула. За този аргумент не е зададена стойност по подразбиране.
  • XPos - Позиция на координатите на диалогов прозорец на оста X.
  • YPos - Координат на позицията на диалогов прозорец на оста Y.
  • HelpFile - Местоположение на помощния файл, който трябва да се използва. Този аргумент става задължителен за задаване, когато аргументът „Контекст“ бъде предаден.
  • Контекст - представлява Помощ ContextId за използваната HelpFile. Задължително да се използва, когато аргументът „HelpFile“ е предаден.
  • От всички тези аргументи само първите три са достатъчни за успешното създаване на InputBox.

Създаване на InputBox в Excel VBA

По-долу са различните стъпки за създаване на InputBox в Excel с помощта на VBA код.

Можете да изтеглите този шаблон на VBA InputBox Excel тук - VBA InputBox Excel шаблон
  • Отворете VBE (Visual Basic Editor, като натиснете едновременно Alt + F11 във файл на Excel и щракнете върху Вмъкване и добавяне на нов модул в VBE.

  • Създайте макрос в този модул, наречен „Module1“. Задайте име на макроса.

  • Въведете командата InputBox в редактора.

Въведете следните входове в оператора InputBox:

  • Подсказка: „Мога ли да знам вашето пълно име?“
  • Заглавие: „Лична информация“
  • По подразбиране: „Започнете да пишете тук

Код:

 Sub InputBoxEX () InputBox "Мога ли да знам вашето име?", "Лична информация", "Започнете да пишете тук" Край на Sub 

  • Натиснете F5 или стартирайте бутона, за да стартирате този код.

Как да съхранявате изхода на InputBox към клетките?

Вие сте създали InputBox, за да получите данните от потребителя. Къде обаче ще се съхранява продукцията? Не сме споменавали никъде, където изходът да се съхранява.

Нека съхраняваме продукцията, която получаваме от InputBox, за да превъзхождаме клетките, като следваме стъпките по-долу в VBA:

  • Декларирайте нова променлива „Име“ с тип „Вариант“. Този тип променлива може да приеме всяка стойност (числова / низ / логическа и т.н.).

Код:

 Sub InputBoxEX () Dim Name като вариант на края Sub 

  • Използвайте InputBox, за да присвоите стойност на тази променлива, наречена „Име“.

Код:

 Sub InputBoxEX () Dim Name като име на вариант = InputBox („Мога ли да знам вашето име?“, „Лична информация“, „Започнете да пишете тук“) End Sub 

Ако бихте могли да забележите скобите след оператора InputBox, те са необходими, защото ние използваме този оператор за променлива „Име“. Щом стане стойност, която трябва да бъде дадена за променлива, тя трябва да бъде спомената в подходящ формат с скоби.

  • Сега каквато и стойност да е написал потребителят в диалоговия прозорец, искаме това да видим в клетка A1 на листа на Excel. Поставете следното изявление за същото в VBE: Обхват („A1“) Стойност = Име.

Код:

 Sub InputBoxEX () Dim Name като име на вариант = InputBox („Мога ли да знам вашето име?“, „Лична информация“, „Започнете да пишете тук“) диапазон („A1“) Стойност = Име Край Под 

Това е, сега нека стартираме този код и да видим как работи.

  • Кликнете върху бутона Run или натиснете F5, за да стартирате този код, ще получите следния диалогов прозорец. Напишете името си в диалоговия прозорец, изскочен с името „Лична информация“ и натиснете ОК, за да видите къде се отпечатва изходът.

  • Веднага щом въведете стойността и щракнете върху OK, можете да видите стойността, въведена в клетка A1. Вижте екрана по-долу.

Всяка стойност може да бъде запаметена с InputBox, ако променливата е дефинирана правилно. В този случай сте дефинирали променливата „Име“ като „Вариант“. Вариантният тип данни може да приеме всяка стойност на данните, както казах по-рано.

Вижте примера по-долу:

Давам число като аргумент на диалоговия прозорец, когато се появи. Вижте по-долу:

Кликнете върху OK, вижте изхода по-долу:

Стойността в клетка A1 се променя на 2019 г.

Сега нека променим типа променлива на Дата.

Код:

 Sub InputBoxEX () Dim Name като дата Име = InputBox ("Мога ли да знам вашето име?", "Лична информация", "Започнете да пишете тук") диапазон ("A1") Стойност = Име Край Под 

Пуснете кода и се опитайте да въведете стойността, различна от датата. Ще въведем самото си име и щракнете върху OK.

  • След като щракнете върху OK, съобщение за грешка във времето за изпълнение, което казва: „Въведете несъответствие“.

Възникна, защото типът на променливото име е Дата сега и съм дал входен аргумент, различен от стойността на датата (име на низ). Поради което този код не се изпълнява и хвърля грешка.

Валидиране на потребителски вход

Ами ако ви кажа, че въвеждането на потребител може да бъде ограничено? Да, това е вярно! Можете да ограничите потребителското въвеждане до символи, числа или логика и т.н.

За да ограничите въвеждането на потребител, можете да използвате Application.InputBox.

Синтаксис за Application.InputBox е както следва:

Където,

Подкана - Съобщение, което се появява за потребителя.

Заглавие - Заглавие на диалоговия прозорец.

По подразбиране - Стойност по подразбиране, която се появява в областта за въвеждане в диалоговия прозорец.

Тип - Видът на входа.

Това са единствените важни аргументи, които са достатъчни за изпълнение на това твърдение.

Нека започнем това с пример.

  • Обявете име на променлива като вариант.

Код:

 Sub InputBoxEX () Dim Name като вариант на края Sub 

Присвойте Application.InputBox на променливата, наречена Name, със същите аргументи като тези, които сте използвали InputBox. т. е. подкана, заглавие и по подразбиране. Вижте кода по-долу:

Код:

 Sub InputBoxEX () Dim Name като име на вариант = Application.InputBox („Мога ли да знам вашето име?“, „Лична информация“, „Започнете да пишете тук“) End Sub 

Сега поставете запетая 5 пъти, за да игнорирате Left, Top, HelpFile и HelpContextID. След 5 запетаи можете да определите типа на въвеждане.

Код:

 Sub InputBoxEX () Dim Name като име на вариант = Application.InputBox („Мога ли да знам вашето име?“, „Лична информация“, „Започнете да пишете тук“,,,,, End Sub 

Типът на входния низ има под посочените валидации:

  • Нека изберем 1 като Тип в нашето изявление. Това означава, че в диалоговия прозорец, който се появява, са приемливи само числата и числовите стойности.

Код:

 Sub InputBoxEX () Dim Name като име на вариант = Application.InputBox („Мога ли да знам вашето име?“, „Лична информация“, „Започнете да пишете тук“,,,,, 1) End Sub 

  • Изпълнете кода ръчно или използвайки клавиша F5 и дайте име като вход в областта за въвеждане, както е показано по-долу. След това щракнете върху OK и вижте изхода.

Той казва, номерът не е валиден. Това изглежда логично, защото сме задали променливия тип вход като число и предоставяме текста като вход, който не е приемлив от системата.

По този начин можете да ограничите потребителя да въвежда само стойностите, които искате да видите чрез InputBox.

Неща, които трябва да запомните

  • InputBox приема до 255 аргумента и може да показва само 254. Затова бъдете внимателни по отношение на максималната дължина, която потребителят може да въведе.
  • Методът на приложение може да се използва за задаване на типа на входните данни. Ако обаче не се използва, трябва да бъдете по-конкретни за типа на входните данни.
  • Препоръчва се да се избере вариант на тип данни, тъй като може да съдържа всеки от числовите / текстови / логически и т.н. B = Стойности.

Препоръчителни статии

Това е ръководство за VBA InputBox. Тук обсъдихме как да създадете InputBox в Excel, използвайки VBA код, заедно с практически примери и шаблон за изтегляне на excel. Можете да разгледате и другите ни предложени статии -

  1. Как да използвате функцията FIND в Excel
  2. Създаване на VBA функция в Excel
  3. Ръководство за обхват в Excel
  4. Как да използвате VBA VLOOKUP функция?

Категория: