本节说的是使用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