VBA 控件学习笔记(下拉列表实现)


本节说的是使用VBA实现下拉列表框的实现,同时下拉框显示的数值是从另一个sheet中获取。

实现效果

比如如下效果:

代码实现:

'刷新ComboBox1内容
Private Sub ComboBox1_DropButtonClick()
     ComboBox1.List() = get_arr("物流装箱清单", 2, 1)
End Sub
  • 第一行:ComboBox1_DropButtonClick()是ComboBox1控件下拉时候触发的事件过程,只要触发下拉动作就执行该过程代码;
  • 第二行:get_arr("物流装箱清单", 2, 1)是自定义的函数,从“物流装箱清单”工作表中第1列、第2行开始查找,返回一个非重复数组;
'定义一个函数:获取sheet中的第几列的非重复值
 Private Function get_arr(sheet_name, row, col)
    Dim dic, i
    Set dic = CreateObject("scripting.dictionary") ' 创建字典
    With Sheets(sheet_name)
        For i = row To .Cells(Rows.Count, col).End(3).row
            dic(.Cells(i, 1).Value) = ""
        Next i
    End With
    get_arr = dic.keys
End Function

 评论