Страницы: 1
RSS
Заполнение ComboBox ActiveX данными из умной таблицы находящейся на другом листе, Заполнение ComboBox ActiveX данными из умной таблицы находящейся на другом листе
 
Всем привет! Столкнулся с проблемой и не смог найти в интернете решения!
Необходимо заполнить ComboBox ActiveX данными из умной таблицы находящейся на другом листе
Я вообще не разбираюсь в VBA. Даже не знаю как правильно вызвать событие для заполнения ComboBox

ComboBox находится не в форме, а помещается в самом листе

Наткнулся на примеры. Ни один из примеров не помог. VBA ругается

1 пример.
Код
Private Sub UserForm_Initialize()
    Me.ComboBox1.List = Range("Штат[ФИО]").Value
End Sub

2 пример.
Код
'для получения данных с ДРУГОГО листа необходимо добавлять имя листа
With Worksheets("Лист1")
    'по названию таблицы и столбца
    ActiveSheet.ComboBox1.ListFillRange = .Name & "!" & .ListObjects("Таблица1").ListColumns("Фамилия").DataBodyRange.Address
     
    'по индексу таблицы и индексу столбца
    ActiveSheet.ComboBox1.ListFillRange = .Name & "!" & .ListObjects(1).ListColumns(3).DataBodyRange.Address
     
    'именованный диапазон
    ActiveSheet.ComboBox1.ListFillRange = .Name & "!" & .Range("ДАННЫЕ").Address
End With
 
В модуль листа где находится ComboBox1
Код
Private Sub Worksheet_Activate()
    arr = Worksheets("Лист1").ListObjects("Таблица1").ListColumns(1).DataBodyRange
    Me.ComboBox1.List = arr
End Sub
Изменено: Msi2102 - 17.06.2025 16:01:23
 
Если на активном листе есть ComboBox1, и на листе "Лист1" есть умная таблица "Таблица1" со столбцом "Фамилия", и с количеством столбцов не меньше трёх, и на этом же листе есть именнованный диапазон "ДАННЫЕ", то код из "2 пример" работает.
 
Спасибо за доскональные пояснения! Благодаря вам все заработало!
Страницы: 1
Читают тему
Наверх