详细讲解Listbox控件在窗体中的运用
概述:在我们工作中会遇到会将数据导入到列表框(listbox)的形式来方便数据的查看与查询。再通过VBA代码可在Excel中轻松实现数据的查询和导入。本文以最新发布的“物料管理系统2.0”为例进行讲解。
- 导入数据到列表框
1.1 在窗体中创建列表框
在Excel按Alt F11进入VBA界面,鼠标右击空白处插入窗体。
1.2 在工具箱选择列表框控件,并在刚刚新建的窗体中拖动大小到合适位置。
1.3 在工具箱选择命令按钮,并在窗体中拖动成查询按钮。
1.4 添加数据源(sheet2)的数据到列表框。
1.4.1双击“查询”按钮,并在按钮下输入如下代码:(下方红色字体为代码注释)
Private Sub CommandButton2_Click()
a = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
(获取数据源工作表数据的行数)
If TextBox1 = "" Then Sheet2.Range("b1") = ""
ListBox1.Clear (清空列表框的内容)
ListBox1.ColumnWidths = "120;90;150;50;50;90;50;70;80" (列表框每列的宽度)
ListBox1.ColumnCount = 9 (列表框的列数)
ListBox1.AddItem Sheet2.Cells(2, 1).Value
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheet2.Cells(2, 2).Value
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheet2.Cells(2, 3).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheet2.Cells(2, 4).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheet2.Cells(2, 5).Text
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheet2.Cells(2, 6).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheet2.Cells(2, 7).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheet2.Cells(2, 8).Value
ListBox1.List(ListBox1.ListCount - 1, 8) = Sheet2.Cells(2, 9).Value
(以上代码为将数据源第二行的数据分别添加到列表框)
For i = 3 To a
If Sheet2.Cells(i, 10) = 1 Then
ListBox1.AddItem Sheet2.Cells(i, 1).Value
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheet2.Cells(i, 2).Value
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheet2.Cells(i, 3).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheet2.Cells(i, 4).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheet2.Cells(i, 5).Text
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheet2.Cells(i, 6).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheet2.Cells(i, 7).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheet2.Cells(i, 8).Value
ListBox1.List(ListBox1.ListCount - 1, 8) = Sheet2.Cells(i, 9).Value
End If
Next
(以上代码为将数据源第三行到最后有数据一行的数据分别添加到列表框。)
End Sub
1.5 模糊查询:模糊查询这里主要是通过search函数判断物料编码是否含有输入的字符。如下如所示,在查询的辅助列输入函数“=IFERROR(IF(SEARCH($B$1,[@物料编码])>0,1,0),0)”函数的大概意思就是在查询框输入内容后,判断输入内容在物料编码列返回的位置。
1.6 代码中Sheet2.Cells(i, 10) = 1为判断输入字符是否在物料编码中存在
1.7 实现效果见下图,自动显示物料编码中含有“33”的物料。
结语:本期教程就分享到这里,有疑问可在评论区留言,小编看到后会及时回复。如果对你有帮助可点赞留言支持。
,