Excel 中组合框的正确初始化

Excel 中组合框的正确初始化

我的 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()?

答案1

更换点击事件组合框改变事件,或者你可以使用 ComboBox可靠的下拉列表也一样。它将以同样的方式执行。

相关内容