У цьому посібнику буде показано, як отримати вхідні дані від користувача за допомогою поля введення VBA.
The Коробка введення VBA дозволяє нам запропонувати користувачеві ввести інформацію. Потім цю інформацію можна використовувати у нашому коді VBA або на робочому аркуші Excel.
Коробка введення VBA зі змінною
Ми можемо оголосити змінну у нашому коді VBA, яка потім зберігає інформацію, яку вводиться у вікно введення. Потім ми можемо використовувати цю змінну у нашому коді.
Залежно від типу інформації, яку ми хочемо повернути з поля введення, ми можемо оголосити певний тип змінної або для повернення тексту (змінна рядка або варіанта), або для повернення числа (ціле число, довга, подвійна або одинична змінна).
Змінна рядка з полем введення
Ось як можна створити InputBox, де дані повертаються у рядкову змінну.
123 | Dim strInput як StringstrInput = InputBox ("Це мій InputBox", "MyInputTitle", "Введіть текст введення ТУТ") |
Зверніть увагу, спочатку ми оголошуємо змінну. Цій змінній буде призначено значення, яке вводить користувач. Ми використовували змінний тип String, щоб поле введення приймало текстові рядки (які включають будь -які буквено -цифрові символи).
Змінна числа з полем введення
Якщо ви оголошуєте числову змінну, вам потрібно буде ввести число лише у поле введення.
12 | Dim iInput As IntegeriInput = InputBox ("Будь ласка, введіть номер", "Створити номер рахунка -фактури", 1) |
Спочатку ми оголошуємо змінну числа цілочисельною змінною. Тоді ми також можемо поставити значення 1 за замовчуванням у поле введення.
Якби ми ввели рядок замість числа, а потім натиснули «ОК», ми отримали б помилку невідповідності типу, оскільки змінна числа не сприймає рядок.
Отримати вхідні дані від користувача
Ось ще один приклад використання найпопулярніших функцій InputBox.
Наступний код робить три речі:
1. Запрошує ввести дані за допомогою InputBox і призначає його змінній
2. Перевіряє вхідні дані, інакше виходить із підрозділу
3. Повертає введені дані у вікні повідомлення
12345678910111213 | Публічний суб MyInputBox ()Затемнити MyInput як рядокMyInput = InputBox ("Це мій InputBox", "MyInputTitle", "Введіть текст введення ТУТ")Якщо MyInput = "Введіть текст введення ТУТ" або MyInput = "" ТодіВийти з підпЗакінчити ЯкщоMsgBox "Текст із MyInputBox - це" & MyInputEnd Sub |
Повернення введених даних до аркуша Excel
Ви можете повернути введені дані у поле введення у певну клітинку на аркуші Excel.
1 | Діапазон ("P1") = InputBox ("Будь ласка, введіть своє ім'я", "Введіть ім'я", "Введіть ім'я ТУТ") |
Ми також можемо повернути вхідні дані до таблиці Excel за допомогою змінної.
12345678910 | Sub EnterNumber ()Увімкнути Помилка Відновити ДаліDim dblAmount As DoubledblAmount = InputBox ("Будь ласка, введіть необхідну суму", "Введіть суму")Якщо dblAmount 0 ТодіДіапазон ("A1") = dblAmountІнакшеMsgBox "Ви не ввели номер!"Закінчити ЯкщоEnd Sub |
У наведеному вище прикладі нам потрібно ввести число. Якщо ми введемо число, то змінна dblAmount розмістить номер на аркуші Excel у комірці А1. Однак, якщо ми не вводимо число, то у вікні повідомлення буде повідомлено, що ми не ввели номер і нічого не буде введено в клітинку А1.
Використання VBA InputBox у Access VBA
Поле введення VBA працює точно так само в Access, як і в Excel, коли повертається введення користувача у вигляді вікна повідомлення.
Однак, якщо ви хочете повернути введення даних користувача до бази даних, вам потрібно буде використовувати об’єкт Recordset, а не об’єкт Range, як використовується в Excel.
1234567891011121314 | Sub EnterInvoiceNumber ()Dim dbs як база данихDim rst як записВстановити dbs = CurrentDbВстановити rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)З першим.Додати новий! InvNo = InputBox ("Будь ласка, введіть номер рахунка -фактури", "ГЕНЕРАЦІЯ НОМЕРА РАХУНОК", 1).ОновитиЗакінчити зПерший. ЗакритиВстановити rst = нічогоВстановити dbs = нічогоEnd Sub |