У меня есть два поля со списком в электронной таблице Excel. Содержимое поля со списком 2 зависит от выбора в поле со списком 1.
Вот что у меня есть для кода в поле со списком 1:
Private Sub cboLine_DropButtonClick()
Dim item_row, combo_item, list_sheet As Worksheet
Set list_sheet = Worksheets("Lists")
Me.cboLine.Clear
item_row = 1
Do
item_row = item_row + 1
combo_item = Application.WorksheetFunction.HLookup("Lines", list_sheet.Range("A1:Z10400"), item_row, False)
If Len(combo_item) > 0 Then Me.cboLine.AddItem combo_item
Loop Until Len(combo_item) = 0
End Sub
И вот что у меня в поле со списком 2:
Private Sub cboMachine_DropButtonClick()
Dim item_row, combo_item, list_sheet As Worksheet
Set list_sheet = Worksheets("Lists")
Me.cboMachine.Clear
Dim line_name
line_name = Me.cboLine.Value
If Len(line_name) = 0 Then
MsgBox ("Please select Line.")
Else:
line_name = line_name & " Machines"
item_row = 1
Do
item_row = item_row + 1
combo_item = Application.WorksheetFunction.HLookup(line_name, list_sheet.Range("A1:Z10400"), item_row, False)
If Len(combo_item) > 0 Then Me.cboMachine.AddItem combo_item
Loop Until Len(combo_item) = 0
End If
End Sub
Первое поле со списком показывает правильные элементы списка, но остается пустым после выбора. Из-за этого второе поле со списком не может получить правильное значение от первого.
Как правильно инициализировать поля со списком в VBA? Где должна быть выполнена инициализация, в combobox_DropButtonClick() или combobox_Change()?