как называть имя нескольких комбинированных списков по имени в VBA - PullRequest
0 голосов
/ 16 октября 2018

Я работаю над книгой со множеством полей со списком.Код ниже - это код, который принимает список полей со списком и передает их в диапазон ячеек.Есть ли способ указать поле со списком в коде VBA с именем поля со списком?Я хотел бы сослаться на имя поля со списком, включив переменную, а не напрямую.Например, «cboAct» & i.List = actList

Коды следующие:

Private Sub UserForm_Initialize()

Dim sheet As Worksheet
Dim actList() As String
Dim i As Integer


Set sheet = Worksheets("DB")


i = sheet.Range("B3").End(xlDown).row


ReDim actList(1 To i - 2)

k = 1

For Each c In sheet.Range("B3:B" & i)

    If k = 1 Then

        actList(k) = c.value

        k = k + 1

    ElseIf c.value <> actList(k - 1) Then

        actList(k) = c.value

        k = k + 1

    End If

Next c


cboAct1.List = actList
cboAct2.List = actList
cboAct3.List = actList
cboAct4.List = actList
cboAct5.List = actList
cboAct6.List = actList
cboAct7.List = actList
cboAct8.List = actList
cboAct9.List = actList
cboAct10.List = actList
cboAct11.List = actList
cboAct12.List = actList
cboAct13.List = actList
cboAct14.List = actList
cboAct15.List = actList

End Sub

Мой вопрос, могу ли я написать код, ссылаясь на имя поля со спискомниже с переменной?Я хочу написать код, ссылаясь на имя определенного поля со списком, а не на код, такой как «Для каждого поля со списком в поле.com».

cboAct1.List = actList

cboAct2.List= actList

cboAct3.List = actList

......................

cboAct15.List= actList

1 Ответ

0 голосов
/ 04 ноября 2018

Я решаю проблему!

For i = 1 To 15 Me.Controls("cboAct" & i).List = actList Next i 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...