【发布时间】:2017-07-04 08:05:43
【问题描述】:
我设计了一个带有 7 个复选框的用户表单。每个 Checkbox 都有一个调用函数,称为自动筛选。此功能自动过滤,有助于过滤我的工作表中的字段 4 并显示结果。
这里,我有 3 个案例。
案例 1。当 Checkbox1 被选中时,显示 autofilter1 的结果。
case2:当 checkboxes1 和 2 被选中时,显示 autofilter1 和 2 的结果。
注意:用户不必只选择复选框 1 和 2,它可以是复选框 2 和 3 或 1 和 3 也可以选择。
案例3:当没有选择任何内容时,清除过滤器。
我成功生成了case1的情况,我应该如何进行,才能实现case2和case3。
下面是自动过滤功能,分配给checkbox1。
Sub autofilter1()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Result")
wslr = ws.Cells(Rows.Count, 1).End(xlUp).Row
Set myfilt = ws.Range("A1:D" & wslr)
myfilt.autofilter Field:=4, Criteria1:= _
"USA"
End Sub
自动筛选功能分配给 checkbox2。
Sub autofilter2()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Result")
wslr = ws.Cells(Rows.Count, 1).End(xlUp).Row
Set myfilt = ws.Range("A1:D" & wslr)
myfilt.autofilter Field:=4, Criteria1:= _
"Germany"
End Sub
自动筛选功能分配给复选框 3。
Sub autofilter3()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Result_APQP")
wslr = ws.Cells(Rows.Count, 1).End(xlUp).Row
Set myfilt = ws.Range("A1:D" & wslr)
myfilt.autofilter Field:=4, Criteria1:= _
"France"
End Sub
在命令按钮“Go”中,我有以下代码,
Private Sub CommandButton4_Click()
If CheckBox1.Value = True Then
Call autofilter1
End If
If CheckBox2.Value = True Then
Call autofilter2
End If
If CheckBox3.Value = True Then
Call autofiletr3
End If
End Sub
【问题讨论】:
-
下次小结一下,问一下基础问题。为每个案例制作一个 sub,并 'select case true : case checkbox1.value : sub1: case check2: sub2 .....end select'。抱歉,我正在使用手机应用程序,无法更好地格式化代码。
-
是的,下次我会这样做