Приведенный ниже код - вот с чем у меня проблемы. Я довольно зеленый, чтобы использовать пользовательские формы в VB.
Моя цель состоит в том, чтобы создать 3 чертежа ComboBox из столбца «Поставщики» на листе «Предложения поставщиков» и 3 списка «ListBox» для выбора продукта поставщика.
For j = 1 To 3
Set myCombo = Frame1.Controls.Add("Forms.ComboBox.1", "ComboBox" & j)
Set myList = Frame1.Controls.Add("Forms.ListBox.1", "ListBox" & j)
With myList
.Top = 18 + (150 - 84) * (j - 1)
.Height = 34.85
.Left = 198
.Width = 180
MsgBox .Name
End With
With myCombo
.Top = 18 + (150 - 84) * (j - 1)
.Height = 22.8
.Left = 42
.Width = 132
End With
Set rData = ThisWorkbook.Worksheets("VendorBids").Range("A:A").CurrentRegion
Me.Controls("ComboBox" & j).List = rData.Offset(1).Value
Me.Controls("ListBox" & j).ColumnCount = 1
Me.Controls("ListBox" & j).List = rData.Offset(1, 1).Value
Next
Эта часть работает отлично. Причина, по которой я это закодировал, а не сделал в пользовательской форме, заключается в том, что у меня есть функция добавления другой строки полей со списком и списком, когда пользователь нажимает кнопку команды. Это работает отлично, а также.
У меня проблема с ComboBox_Change (). Если я создаю комбинированный список в редакторе GUI UserForm, то ComboBox1_Change () будет работать. Ниже приведен пример того, чего я пытаюсь достичь, но со всеми сгенерированными комбинированными списками, такими как ComboBox2, 3 и так далее ...
Private Sub ComboBox1_Change()
Me.ListBox1.ListIndex = Me.ComboBox1.ListIndex
End Sub
Я прошу прощения, если я не очень ясен в своей логике или объяснениях - это то, над чем я работаю как новичок.