VBA InputBox - получение ввода от пользователя в макросе - примеры кода VBA

В этом руководстве будет показано, как получить ввод от пользователя с помощью поля ввода VBA.

В Поле ввода VBA позволяет нам предлагать пользователю ввести информацию. Затем информацию можно использовать в нашем коде VBA или на листе Excel.

Поле ввода VBA с переменной

Мы можем объявить переменную в нашем коде VBA, который затем сохранит информацию, введенную в поле ввода. Затем мы можем использовать эту переменную в нашем коде.

В зависимости от типа информации, которую мы хотим вернуть из поля ввода, мы можем объявить переменную определенного типа для возврата текста (строковая или вариантная переменная) или для возврата числа (целочисленная, длинная, двойная или одинарная переменная).

Строковая переменная с полем ввода

Вот как вы можете создать InputBox, в котором данные возвращаются в строковую переменную.

123 Dim strInput как строкаstrInput = InputBox («Это мой InputBox», «MyInputTitle», «Введите текст для ввода ЗДЕСЬ»)

Обратите внимание: сначала мы объявляем переменную. Этой переменной будет присвоено значение, введенное пользователем. Мы использовали тип переменной String, чтобы поле ввода могло принимать текстовые строки (которые включают любые буквенно-цифровые символы).

Числовая переменная с полем ввода

Если вы объявляете числовую переменную, вам нужно будет ввести число только в поле ввода.

12 Dim iInput как целое числоiInput = InputBox («Введите число», «Создать номер счета», 1)

Сначала мы объявляем числовую переменную как целочисленную. Затем мы также можем ввести значение по умолчанию 1 в поле ввода.

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

Получение информации от пользователя

Вот еще один пример использования самых популярных функций InputBox.

Следующий код выполняет три функции:

1. Запрашивает ввод с помощью InputBox и назначает его переменной.

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

3. Возвращает введенные данные в окне сообщения.

12345678910111213 Общедоступная подписка MyInputBox ()Dim MyInput как строкаMyInput = InputBox («Это мой InputBox», «MyInputTitle», «Введите текст ЗДЕСЬ»)Если MyInput = "Введите текст ЗДЕСЬ" или MyInput = "" ТогдаВыйти из подводной лодкиКонец, еслиMsgBox "Текст из MyInputBox:" & MyInputКонец подписки

Возврат ввода в лист Excel

Вы можете вернуть ввод, который вы вводите в поле ввода, в определенную ячейку на листе Excel.

1 Range ("P1") = InputBox ("Введите свое имя", "Введите имя", "Введите имя ЗДЕСЬ")

Мы также можем вернуть входные данные в таблицу Excel с помощью переменной.

12345678910 Sub EnterNumber ()При ошибке Возобновить ДалееDim dblAmount As DoubledblAmount = InputBox («Введите необходимую сумму», «Введите сумму»)Если dblAmount 0 ТогдаДиапазон ("A1") = dblAmountЕщеMsgBox "Вы не ввели номер!"Конец, еслиКонец подписки

В приведенном выше примере нам необходимо ввести число. Если ввести число, то переменная dblAmount поместит число в лист Excel в ячейку A1. Однако, если мы не введем число, то в окне сообщения будет указано, что мы не вводили число, и в ячейку A1 ничего не будет помещено.

Использование VBA InputBox в Access VBA

Поле ввода VBA работает в Access точно так же, как и в Excel, при возврате введенных пользователем данных в виде окна сообщения.

Однако, если вы хотите вернуть введенные пользователем данные в базу данных, вам нужно будет использовать объект Recordset, а не объект Range, как в Excel.

1234567891011121314 Sub EnterInvoiceNumber ()Dim dbs как база данныхDim rst As RecordsetУстановите dbs = CurrentDbУстановите rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)С первой.Добавить новое! InvNo = InputBox ("Пожалуйста, введите номер счета", "ПОЛУЧЕНИЕ НОМЕРА СЧЕТА", 1).ОбновлятьКонец ссначала закрытьУстановить rst = ничегоУстановить dbs = NothingКонец подписки

wave wave wave wave wave