Заполните комбинированный список двумя текстовыми полями из массива - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь получить значения из 2 ячеек в массиве, чтобы заполнить текстовое поле комбинированного списка в пользовательской форме.Значения в массиве выглядят так:

A  1
B  2
C  3
B  4

Я бы хотел провести различие между B2 и B4 в текстовом поле комбинированного списка.Поле в настоящее время заполняется как B.Я бы хотел, чтобы вместо этого он набрал B 2.Этот вопрос частично связан с этим вопросом.

Я пытался использовать этот , который был связан с здесь , но не смог получить свойство ListCountработать.Я использовал this , чтобы лучше понять массивы в надежде, что это даст некоторое представление.Я попробовал этот подход, но он не заполняет текстовое поле. WhereInArray выглядит так, будто это больше для поиска значения, а также зависит от уникального значения.Я пробовал это , но похоже, что он запутался в массиве.Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 08 мая 2019

Представьте себе эти данные в Worksheets("Sheet1")

enter image description here

Заполните ваш комбинированный список ComboBox1 следующим образом: Переберите данные и используйте .AddItem, чтобы добавить комбинацию обоих столбцов данных.

Private Sub UserForm_Initialize()
    Dim Data() As Variant 'array
    Data = Worksheets("Sheet1").Range("A1:B4").Value 'read data into array

    Me.ComboBox1.Clear

    Dim iRow As Long
    For iRow = LBound(Data, 1) To UBound(Data, 1)
        Me.ComboBox1.AddItem Data(iRow, 1) & " " & Data(iRow, 2)
    Next iRow
End Sub

Тогда вы можете выбрать свой предмет следующим образом:

enter image description here

И вы можете получить значение B 2 с помощью Me.ComboBox1.Text:

Debug.Print Me.ComboBox1.Text 'returns B 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...