Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/UserForm - массовое заполнение ComboBox-ов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
UserForm - массовое заполнение ComboBox-ов
Fidgy Дата: Понедельник, 03.06.2019, 14:54 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 11 ±
Замечаний: 0% ±

Excel 2016
День добрый!
Создаю юзерформу, в которой будет множество однотипных ComboBox-ов
Во всех этих комбобоксах будут одинаковые списки значений: буквы от A до J и цифры от 1 до 10
И у них будут типовые имена. Для букв V1_CB1, V2_CB1, V3_CB1...; для цифр V1_CB2, V2_CB2, V3_CB2...
Предварительно есть два массива со значениями и далее я заполняю комбобоксы
[vba]
Код

Private Sub UserForm_Initialize()
Fill_main_arrays 'заполняю массивы
V1_CB1.List = aj
V1_CB2.List = oneten
V2_CB1.List = aj
V2_CB2.List = oneten
' и т.д.
End Sub
[/vba]

Похожая ситуация с OptionButtons

Вопрос:
Можно ли как-то упростить, уменьшить код, чтобы не указывать каждый объект отдельно?
Может можно как-то через цикл указывать имя объекта, чтобы к нему присвоить нужные значения?
К сообщению приложен файл: test.xlsm (13.0 Kb)


Сообщение отредактировал Fidgy - Понедельник, 03.06.2019, 14:55
 
Ответить
СообщениеДень добрый!
Создаю юзерформу, в которой будет множество однотипных ComboBox-ов
Во всех этих комбобоксах будут одинаковые списки значений: буквы от A до J и цифры от 1 до 10
И у них будут типовые имена. Для букв V1_CB1, V2_CB1, V3_CB1...; для цифр V1_CB2, V2_CB2, V3_CB2...
Предварительно есть два массива со значениями и далее я заполняю комбобоксы
[vba]
Код

Private Sub UserForm_Initialize()
Fill_main_arrays 'заполняю массивы
V1_CB1.List = aj
V1_CB2.List = oneten
V2_CB1.List = aj
V2_CB2.List = oneten
' и т.д.
End Sub
[/vba]

Похожая ситуация с OptionButtons

Вопрос:
Можно ли как-то упростить, уменьшить код, чтобы не указывать каждый объект отдельно?
Может можно как-то через цикл указывать имя объекта, чтобы к нему присвоить нужные значения?

Автор - Fidgy
Дата добавления - 03.06.2019 в 14:54
RAN Дата: Понедельник, 03.06.2019, 15:27 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub UserForm_Activate()
    For Each ctr In Me.Controls
        If TypeOf ctr Is MSForms.ComboBox Then
            If InStr(ctr.Name, "V1") Then
                ctr.List = aj
            ElseIf InStr(ctr.Name, "V2") Then
                ctr.List = oneten
            End If
        End If
    Next
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub UserForm_Activate()
    For Each ctr In Me.Controls
        If TypeOf ctr Is MSForms.ComboBox Then
            If InStr(ctr.Name, "V1") Then
                ctr.List = aj
            ElseIf InStr(ctr.Name, "V2") Then
                ctr.List = oneten
            End If
        End If
    Next
End Sub
[/vba]

Автор - RAN
Дата добавления - 03.06.2019 в 15:27
Fidgy Дата: Понедельник, 03.06.2019, 15:57 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 11 ±
Замечаний: 0% ±

Excel 2016
RAN, большое спасибо!

Сделал следующим образом
[vba]
Код

Private Sub UserForm_Initialize()
Dim ctr As Control
Fill_main_arrays

For Each ctr In Me.Controls
        If TypeOf ctr Is MSForms.ComboBox Then
            If ctr.Name Like "V?_CB1" Then
                ctr.List = aj
            ElseIf ctr.Name Like "V?_CB2" Then
                ctr.List = oneten
            End If
        End If
Next
End Sub
[/vba]
 
Ответить
СообщениеRAN, большое спасибо!

Сделал следующим образом
[vba]
Код

Private Sub UserForm_Initialize()
Dim ctr As Control
Fill_main_arrays

For Each ctr In Me.Controls
        If TypeOf ctr Is MSForms.ComboBox Then
            If ctr.Name Like "V?_CB1" Then
                ctr.List = aj
            ElseIf ctr.Name Like "V?_CB2" Then
                ctr.List = oneten
            End If
        End If
Next
End Sub
[/vba]

Автор - Fidgy
Дата добавления - 03.06.2019 в 15:57
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!