Как использовать данные, введенные в пользовательскую форму в основном модуле
Я очень новичок в кодировании VBA. У меня есть пользовательская форма с пятью текстовыми полями. Пользователь вводит целое число в первых текстовых блоках и ячейках (например, A1) в последних четырех текстовых блоках. Я хочу, чтобы эти данные использовались в основном модуле. Мне нужно использовать целое число в цикле, т.е. цикл, пока счетчик не достигнет этого целого. Мне нужно использовать ячейки, чтобы начать доступ к различным наборам данных, которые могут быть в любом месте листа.
У меня возникают проблемы с доступом к этим данным в основном модуле. В настоящее время я скрываю форму, когда пользователь нажимает кнопку «ОК». Чтобы проверить свой код, я просто записываю данные из текстовых полей в ячейки.
Код основного модуля:
- Неверное текстовое поле в форме VBA
- Значение по умолчанию для текстового поля VBA Userform и выделено
- Добавить прослушиватель событий в текстовое поле Excel (потерять фокус)
- Автоматическое заполнение текстового поля в Excel VBA
- Excel VBA - Shapes Текстовое поле OnChange событие
Sub Sort2Stack() UserInput.Show Cells(5, 22).Value = TestPeriod.Value 'integer entered in TextBox 1 Cells(6, 22).Value = YMLoc.Value 'cell location entered in TextBox 2 Cells(7, 22).Value = YFLoc.Value ' . Cells(8, 22).Value = NMLoc.Value ' . Cells(9, 22).Value = NFLoc.Value 'cell location entered in TextBox 5 End Sub
Я получаю ошибку времени выполнения 424, требуемый объект. Это, наверное, довольно просто, и я искал какое-то время – новое для этого.
Пожалуйста, порекомендуйте. Заранее спасибо!
- Присоединение текстового поля к точке или строке на диаграмме в Excel / VBA
- VBA, чтобы проверить, существует ли текст в текстовом поле, а затем проверить, находится ли дата в правильном формате
- Выделить текст в Userform TextBox
- Очистка строки, при выборе элемента в текстовом поле, из текстового поля и исходного листа
- Передайте значение текстового поля UserForm в ячейку
- Как выбрать данные в TextBox или ListBox, а затем отправить электронную почту через Outlook на основе этих данных
- Каждый символ в TextBox разного цвета в vba excel
- Текст текстового поля в Excel VBA
Cells(5, 22).Value = UserInput.TestPeriod.Text
Я думаю, вам нужно обратиться к вашей пользовательской форме, чтобы получить значения. Это предполагает, что вы действительно просто спрятали форму, а не выгрузили ее. В конце вашей процедуры перед End Sub вы должны
Unload UserInput
чтобы получить форму из памяти.
Вы также можете объявлять общедоступные переменные в своем основном модуле и получать доступ к ним из своей формы. Вы можете установить переменные равными текущему тексту текстовых полей для определенного события нажатия кнопки.