Excel VBA InputBox

Хотя в большинстве случаев вы используете данные, которые уже есть у вас, иногда вы сталкиваетесь с ситуацией, когда вы хотите, чтобы пользователь вводил такие данные, как имя, возраст и т. Д., Личную информацию. Такого рода вводная информация иногда необходима, когда мы проводим опрос и нуждаемся в объективном мнении людей.

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

Синтаксис для VBA InputBox

Ниже приводится синтаксис VBA InputBox:

Где,

  • Подсказка - сообщение, которое отображается пользователю. Это единственный обязательный аргумент, остальные аргументы необязательны.
  • Заголовок - это заголовок, который появляется в диалоговом окне после успешного выполнения оператора InputBox. Если не указано, по умолчанию система печатает «Microsoft Excel» в качестве заголовка.
  • По умолчанию - это значение по умолчанию, которое появляется в диалоговом окне. Мы также можем оставить его нулевым. Не задано значение по умолчанию для этого аргумента.
  • XPos - координата положения диалогового окна по оси X.
  • YPos - координата положения диалогового окна по оси Y.
  • HelpFile - расположение файла справки, который следует использовать. Этот аргумент становится обязательным для установки при передаче аргумента «Context».
  • Контекст - представляет контекст справки справки для используемого файла справки. Обязательно для использования при передаче аргумента «HelpFile».
  • Из всех этих аргументов только первые три достаточно для успешного создания InputBox.

Создание InputBox в Excel VBA

Ниже приведены различные шаги для создания InputBox в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA InputBox Excel здесь - Шаблон VBA InputBox Excel
  • Откройте VBE (редактор Visual Basic, нажав одновременно Alt + F11 в файле Excel, нажмите « Вставить» и добавьте новый модуль в VBE.

  • Создайте макрос в этом модуле с именем «Module1». Присвойте имя макросу.

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

Дайте следующие входные данные для оператора InputBox:

  • Подсказка: «Могу ли я узнать ваше полное имя?»
  • Название: «Личная информация»
  • По умолчанию: «Начните вводить здесь

Код:

 Sub InputBoxEX () InputBox «Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь» End Sub 

  • Нажмите F5 или кнопку запуска, чтобы запустить этот код.

Как сохранить вывод InputBox для ячеек?

Вы создали InputBox для получения ввода от пользователя. Однако где будет храниться вывод? Мы не упомянули ни о каком месте, где продукция может быть сохранена.

Давайте сохраним вывод, который мы получаем из InputBox, чтобы превзойти ячейки, выполнив следующие шаги в VBA:

  • Объявите новую переменную «Имя» с типом «Вариант». Этот тип переменной может принимать любое значение (числовое / строковое / логическое и т. Д.).

Код:

 Sub InputBoxEX () Dim Name As Variant End Sub 

  • Используйте InputBox, чтобы присвоить значение этой переменной под названием «Имя».

Код:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь») End Sub 

Если вы могли заметить круглые скобки после оператора InputBox, они необходимы, потому что мы используем этот оператор для переменной «Name». Как только оно становится значением для переменной, оно должно упоминаться в правильном формате с круглыми скобками.

  • Теперь, какое бы значение пользователь ни вводил в диалоговом окне, мы хотим, чтобы оно отображалось в ячейке A1 листа Excel. Поместите следующее утверждение для того же самого в VBE: Range («A1»). Value = Name.

Код:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь») Диапазон («A1»). Значение = Имя End Sub 

Вот и все, теперь давайте запустим этот код и посмотрим, как он работает.

  • Нажмите на кнопку Run или нажмите F5, чтобы запустить этот код, вы получите следующее диалоговое окно. Напишите свое имя в диалоговом окне, всплывающем с именем «Личная информация», и нажмите «ОК», чтобы увидеть, где выводится результат.

  • Как только вы введете значение и нажмете OK, вы увидите значение, введенное в ячейку A1. Смотрите скриншот ниже.

Любое значение может быть сохранено с использованием InputBox, если переменная определена правильно. В этом случае вы определили переменную «Имя» как «Вариант». Вариантный тип данных может принимать любое значение данных, как я уже говорил ранее.

Смотрите пример ниже:

Я даю число в качестве аргумента для диалогового окна, когда всплывает. Смотрите как ниже:

Нажмите OK, смотрите вывод ниже:

Значение в ячейке A1 изменяется на 2019.

Теперь давайте изменим тип переменной на Date.

Код:

 Sub InputBoxEX () Dim Name As Date Name = InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь») Диапазон («A1»). Значение = Имя End Sub 

Запустите код и попробуйте ввести значение, отличное от даты. Я сам введу свое имя и нажму OK.

  • После нажатия OK появляется сообщение об ошибке времени выполнения, в котором указано «Несоответствие типов».

Это произошло из-за того, что тип имени переменной - Date сейчас, и я дал входной аргумент, отличный от значения даты (имя строки). Из-за чего этот код не выполняется и выдает ошибку.

Проверка пользовательского ввода

Что если я скажу вам, что ввод пользователя может быть ограничен? Да, это правда! Вы можете ограничить ввод пользователя символами, числами или логическими и т. Д.

Чтобы ограничить пользовательский ввод, вы можете использовать Application.InputBox.

Синтаксис для Application.InputBox выглядит следующим образом:

Где,

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

Заголовок - заголовок диалогового окна.

По умолчанию - значение по умолчанию, которое появляется в области ввода в диалоговом окне.

Тип - тип ввода.

Это единственные важные аргументы, которых достаточно, чтобы выполнить это утверждение.

Давайте начнем это с примера.

  • Объявите переменную Name как Variant.

Код:

 Sub InputBoxEX () Dim Name As Variant End Sub 

Присвойте Application.InputBox переменной Name с теми же аргументами, что и для InputBox. т.е. Подсказка, Заголовок и По умолчанию. Смотрите код ниже:

Код:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь») End Sub 

Теперь вставьте запятую 5 раз, чтобы игнорировать Left, Top, HelpFile и HelpContextID. После 5 запятых вы можете указать тип ввода.

Код:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь»,,,,, End Sub 

Тип входной строки имеет следующие проверки:

  • Давайте выберем 1 в качестве Типа в нашем утверждении. Это означает, что в появившемся диалоговом окне допустимы только числа / числовые значения.

Код:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox («Могу ли я узнать ваше имя?», «Личная информация», «Начать вводить здесь»,,,,, 1) End Sub 

  • Запустите код вручную или с помощью клавиши F5 и введите имя в качестве ввода в области ввода, как показано ниже. Затем нажмите OK и посмотрите вывод.

Там написано, номер не действителен. Это кажется логичным, потому что мы установили переменный тип ввода в качестве числа и предоставили текст в качестве ввода, что неприемлемо для системы.

Таким образом, вы можете запретить пользователю вводить только те значения, которые вы хотите видеть через InputBox.

То, что нужно запомнить

  • InputBox принимает до 255 аргументов и может отображать только 254. Поэтому будьте осторожны с максимальной длиной, которую может ввести пользователь.
  • Метод приложения может использоваться для установки типа входных данных. Однако, если он не используется, вам нужно более конкретно указать тип входных данных.
  • Рекомендуется выбрать вариант типа данных, поскольку он может содержать любой из числовых / текстовых / логических и т. Д. B = значений.

Рекомендуемые статьи

Это было руководство к VBA InputBox. Здесь мы обсудили, как создать InputBox в Excel с использованием кода VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

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

Категория: