Excel VBA Заполнить текстовое поле в пользовательской форме из рабочего листа в зависимости от ввода другого текстового поля - PullRequest
0 голосов
/ 11 января 2020

Итак, у меня есть пользовательская форма,

. В этой пользовательской форме у меня есть ComboBox (comboDepartment), TextBox (txtCode) и другой TextBox (textDescription). Каждый выбор ComboBox имеет лист. (например, Robo1, Robo2, et c ...). Рабочие листы имеют 2 столбца (столбец A = код ошибки и столбец B = описание ошибки)

Теперь мой вопрос: в зависимости от (comboDepartment) выбора comboBox он должен выбрать правильный лист (возможно, установить его как переменная?).

Следующий пользователь будет вводить код ошибки в (txtCode) TextBox (просто числа, например, 1,2,3, et c ...), после ввода нужного мне кода заполните (textDescription) TextBox из столбца B на рабочем листе в зависимости от кода ошибки, введенного пользователем.

Интересно, возможно ли это вообще?

Заранее спасибо!

1 Ответ

0 голосов
/ 12 января 2020

Соберите все листы, получив их имена и добавьте их в свой список. В вашем Private sub Userform_Initialize методе:

For each deptSheet in Thisworkbook.Worksheets
    comboDepartment.AddItem deptSheet.Name
Next

Создайте личную переменную для вашего рабочего листа (dim deptSheet as Worksheet) и установите выбранное значение в выпадающем списке. В вашем Private sub comboDepartment_Change методе:

set deptSheet = Thisworkbook.Sheets(comboDepartment.Value)

Теперь вы можете ссылаться на лист в выбранном раскрывающемся списке: deptSheet.Range(" ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...