listbox控件的属性(Excel制作简单的筛选器(VBA:ListBox控件))

简单的筛选器

Listbox控件制作多选筛选器

应朋友的要求做了一个比较复杂的筛选器,在这里简化了一下,着了个实例。

这个小程序用VBA控制自动筛选,使用窗体控件Listbox实现多选,并把筛选结果复制到新表。

listbox控件

先看窗体

窗体设计

窗体很简单几个按钮加一个Listbox,最主要的就是Listbox设置

Listbox

①多项选择设置:有三个选项,0单选,1多选,2扩展多选支持SHIFT&CTRL键。

②选项的表头:只有两个选项,TRUE使用,FALSE不使用。

③列表风格:有两个选项,0不显示选择框,1显示选择框,如果①是单选就显示圆点单选,否则显示方框多选。

④数据源:在表三里提前写好的筛选项目。

接下来是程序设计

窗体代码部分:

窗体代码

这部分我用了个函数来处理多选,Multilistbox(),就这个简单的例子来说倒是没有必要,直接写在按钮事件里就行了,因为我处理的那个复杂筛选过程里,这个多选函数可以缩减工作量。

这里的HH,还有ComType是全局变量用来把从窗体取到数据传递到模块里。

模块代码:

模块代码

这段代码的重点在于:

With srng

.AutoFilter

If UBound(ComType) = 3 Then

.AutoFilter Field:=2

Else

.AutoFilter Field:=2, Criteria1:=ComType, Operator:=xlFilterValues

End If

End With

判断传递过来的ComType数组上限是不是3,来决定是全选,还是按照值筛选。

有了这个实例的经验,复杂的筛选过程也不难处理,就是多了些参数传递。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友