excel 是否为刷新下拉列表选择案例?

dbf7pr2w  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(118)

我想知道dropdownlist是否有可能有“选择案例”功能?
我的combobox值列表基于refresh_dropdownlist,它位于名为“列表”的不同工作表上
如果你要问我为什么要做这种工作表,那是因为我们总是有新的机器和生产线,这样他们就可以很容易地添加新的机器代码等,而不必编码或打电话给我。工作表列表与图表和计算公式相链接,“求和”等。
这是组合框(https://i.stack.imgur.com/XIV3Q.jpg)列表
我当前代码

Sub Refresh_DropDown_List()

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("List")
 

Dim i As Integer

'''' combobox for Machine
Me.cmb_machine.Clear
Me.cmb_machine.AddItem ""
    
For i = 2 To Application.WorksheetFunction.CountA(sh.Range("C:C"))
    Me.cmb_machine.AddItem sh.Range("C" & i).Value
Next i

'''' combobox for Line
Me.cmb_line.Clear
Me.cmb_line.AddItem ""

For i = 2 To Application.WorksheetFunction.CountA(sh.Range("D:D"))
    Me.cmb_line.AddItem sh.Range("D" & i).Value
Next i

我希望发生的是,当cmb_line.value为例如“L1”时,cmb_machine.value将仅显示范围“C2:C28”,对于其他行依此类推。

epfja78i

epfja78i1#

假设您要使用动态范围,例如:

Private Sub UserForm_Initialize()
    With Sheets(1)
        ComboBox1.List = .Range(Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1)).Value
        ComboBox2.List = .Range(Cells(2, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 2)).Value
    End With
End Sub

使用简单数据进行测试:

请注意,设置ComboBox.List的值为Range().Value

相关问题