Substitua o Click Event pelo ComboBox Change Event , ou em vez do ComboBox você pode usar Lista Drop-Down Confiável também. Ele funcionará da mesma maneira.
Eu tenho duas caixas de combinação em uma planilha do Excel. O conteúdo da caixa de combinação 2 depende da seleção na caixa de combinação 1.
Aquiestáoqueeutenhoparaocódigonacaixadecombinação1:
PrivateSubcboLine_DropButtonClick()Dimitem_row,combo_item,list_sheetAsWorksheetSetlist_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
E aqui está o que eu tenho na caixa de combinação 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
A primeira caixa de combinação mostra os itens da lista correta, mas ainda está em branco após a seleção. Por causa disso, a segunda caixa de combinação não pode obter o valor correto do primeiro.
Qual é a maneira correta de inicializar caixas de combinação no VBA? Onde a inicialização deve ser feita, em combobox_DropButtonClick () ou combobox_Change ()?
Substitua o Click Event pelo ComboBox Change Event , ou em vez do ComboBox você pode usar Lista Drop-Down Confiável também. Ele funcionará da mesma maneira.
Tags microsoft-excel vba