У меня есть выпадающий список в пользовательской форме, который я хотел бы заполнить списком значений.
Значения находятся в середине ряда столбцов и могут рассматриваться как заголовки столбцов, поскольку каждый находится в своем собственном столбце.Список столбцов будет расширяться с течением времени и должен обновляться при каждой инициализации пользовательской формы.Мне удалось создать список из одного столбца, и я также могу создать список из нескольких столбцов, но при этом значения остаются в ориентации столбца, и я не могу получить их в transpose всписок строк.Данные в столбцах выглядят следующим образом:
|--|--A--+--B--+--C--+--D--+ ... +
|--|-----+-----+-----+-----+
|1 | | | | |
|--|-----+-----+-----+-----+
|2 | << other data here >>|
|--| +-----+-----+-----+
|3 | " | a | b | c | ... <~~ row 3 data (needed as 2nd element in combobox)
|--| +-----+-----+-----+
|4 | " | d | e | f | ... <~~ row 4 data (needed as 1st element in combobox)
|--| +-----+-----+-----+
|5 | " | 1 | 2 | 3 |
|--| +-----+-----+-----+
|6 | " | 4 | 5 | 6 |
|--|-----+-----+-----+-----+
|7 | " | 7 | 8 | 9 |
|--|-----+-----+-----+-----+
Я хочу, чтобы записи списка в выпадающем списке выглядели так:
d a
e b
f c
Эта пользовательская форма инициализируется другой пользовательской формой, которая выбирает из нескольких вариантова затем активирует правильный лист из нескольких листов, которые имеют похожую информацию.Когда вторая пользовательская форма инициализируется, она должна заполнить комбинированный список данными в примере выше.Я создал список значений из одного столбца, используя:
Private Sub UserForm_Initialize()
'ReferenceCombo.ColumnCount = 2
'Range("B4", Range("B" & Rows.Count).End(xlUp)).Name = "Dynamic"
'Me.ReferenceCombo.RowSource = "Dynamic"
End Sub
Я также могу получить список всех значений в строке, используя:
Dim sht As Worksheet
Set sht = ActiveSheet
ReferenceCombo.ColumnCount = 2
sht.Range(Sheet7.Cells(4, 2), Sheet7.Cells(4, Columns.Count).End(xlToLeft)).Name = "Dynamic"
sht.Range(Sheet7.Cells(4, 2), Sheet7.Cells(4, Columns.Count).End(xlToLeft)).Select
Me.ReferenceCombo.RowSource = "Dynamic"
, но при этом выбирается только один издве строки, которые я хочу, и не переносят список значений в правильный формат.
Я пробовал информацию из здесь , но, похоже, это не относится к пользовательским формам.Информация здесь помогла в правильном выборе строки. Этот был полезен при выборе динамического поля. Здесь Я нашел информацию о транспонировании списка, но я не уверен, что понял его полностью. Это относится к диапазону заполнения списка, но я не уверен, что это также относится и к комбинированным спискам на пользовательских формах. Это относится к вставке функции транспонирования, но у меня это не сработало.
Любая помощь будет принята с благодарностью.