【发布时间】:2019-08-10 20:53:41
【问题描述】:
我有一个用户表单,用户从下拉框中输入选择,一旦按下命令按钮,它就会过滤和排序工作表以向他们显示所需的内容。
但是,我正在努力寻找一种解决方案,该解决方案说明如果为空白,则不对该列应用任何过滤器。
有人可以帮忙吗?
Private Sub CommandButton1_Click()
ThisWorkbook.Sheets("Employee List").Visible = True
ThisWorkbook.Sheets("Employee List").Select
Sheets("Employee List").CommandButton1.Visible = False
Sheets("Employee List").CommandButton2.Visible = False
Sheets("Employee List").CommandButton3.Visible = True
Sheets("Employee List").CommandButton4.Visible = True
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=7, Criteria1:=ComboBox1.Value, Operator:=xlAnd
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=8, Criteria1:=ComboBox2.Value, Operator:=xlAnd
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=12, Criteria1:="True", Operator:=xlAnd
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=30, Criteria1:="<=" & Me.ComboBox3.Value, Operator:=xlAnd
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=31, Criteria1:="Yes", Operator:=xlAnd
Worksheets("Employee List").ListObjects("Employee_List").Range.AutoFilter Field:=32, Criteria1:="No"
Worksheets("Employee List").Columns("E:E").EntireColumn.Hidden = True
Worksheets("Employee List").Columns("I:P").EntireColumn.Hidden = True
Worksheets("Employee List").Columns("R:S").EntireColumn.Hidden = True
Worksheets("Employee List").Columns("T:T").EntireColumn.Hidden = True
Worksheets("Employee List").Columns("V:AF").EntireColumn.Hidden = True
Me.Hide
ActiveWorkbook.Save
End Sub
【问题讨论】:
-
请更具体地说明你的意思 "如果空白 然后不要在 该列"上应用任何过滤器>.
-
嗨@Pᴇʜ 如果用户不想应用站点过滤器,那么它将显示所有站点。当前的代码似乎将它们全部隐藏了。
-
什么“网站过滤器”?你的问题中没有出现这个词。你需要更具体。请阅读How to Ask 然后edit 您的问题。您将需要不止一句话来改进它并使其更清晰。
-
听起来您正在尝试复制自动过滤器功能。为什么用户不能只使用 Excel 中提供的过滤器而不是使用表单来做完全相同的事情?
标签: excel vba sorting filter combobox