#excel #vba
Вопрос:
Поэтому у меня возникла проблема, когда я хочу заполнить данные в поле со списком, где есть справочные данные.
Вот моя таблица из excel:
И вот моя анкета:
Поэтому, когда пользователь введет 100, textbox
как на изображении выше, только alex herd
и Diana Edmunds
будет доступно для выпадающего списка и выбора в Party Name
выпадающем списке. Как этого добиться?
Ответ №1:
Поскольку вы не добавили собственный код, я ограничусь только основными фактами вашего поста, демонстрирующего подход, использующий функции динамического массива MS 365 с помощью Filter()
функции, организованной в Let
контейнере функций, который позволяет создать четкую структуру, избегающую некоторых избыточностей, и позволяет определять выражения («переменные») вместе с их содержимым в парах аргументов.
Необходимые шаги
Вы ссылаетесь на существующий лист данных (при условии, что столбцы A:C), поэтому выполните следующие действия:
- Запишите значение текстового поля в именованную ячейку (например
$D$1
, «Число»)., - Введите следующую формулу в ячейку $D$2:
=LET(data,FILTER(A:B,C:C=Number), FName,INDEX(data,,1), LName,INDEX(data,,2), PROPER(FNameamp; " " amp; LName))
Эта формула динамически записывает нужные имена в так называемый диапазон разлива, на который может ссылаться суффикс «#»(например, by D2#
)
- В конечном итоге вы можете использовать это
TextBox1_Change
событие для присвоения всего набора данных.List
свойству вашего выпадающего списка:
ComboBox1.List = ThisWorkbook.Worksheets("Data").Range("D2#").Value ' << change to needed sheet name