我正在做我的项目,我遇到了一些问题。此外,我的范围是使用VBA作为我的项目的主要软件。
至于现在,我希望我可以使用下拉列表来过滤我的表格,它只显示我想要显示的特定部门和周。
从下图中,从范围(" C7:L26"),每当我过滤单元格(F2)或单元格(J2)时,它将从下拉列表中保留我想要的数据。
例如,如果单元格(F2)= 2且单元格J2 = e,则从范围(" C7,L26和#34;),它将仅显示具有值的部门" e"并有第2周。对于没有部门值或周值的单元格,它将被清除或空白。
我也希望如果可以按一个按钮将表格恢复为默认值。
指导我,我真的需要你的帮助!
[1] http://imgur.com/GNGyh91 [2] http://imgur.com/uuh2Y1u
更新:我已尝试录制宏
Sub Filter()
'
' Filter Macro
Range("B9:BR38").Select
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 1
Selection.AutoFilter
ActiveSheet.Range("$B$9:$BR$38").AutoFilter Field:=1, Criteria1:="e"
End Sub
更新2:我决定使用文本框来过滤我的表数据,而不是录制宏。但是,我意识到我的表没有按照我在文本框中输入的内容进行过滤。
Private Sub TextBox1_Change()
Dim Text
Text = TextBox1.Value
If Text <> "" Then
Sheet2.Range("A5:AV26").AutoFilter
Field = 1
criteria = "text,_"
visibledropdown = False
Else
Sheet2.AutoFilterMode = False
End If
End Sub
&#13;
答案 0 :(得分:0)
您需要将参数保持在逗号分隔的同一行,并且 Criteria1 ,而不是条件。如果要隐藏下拉箭头,则需要单独执行每个操作。下面的代码仅隐藏了要过滤的字段的下拉列表。如果当然,如果您只过滤一个字段,那么您可以使用Sheet2.Range("A5:A26")
,因为过滤会遍历所有列。
If True Then
Sheet2.Range("A5:AV26").AutoFilter Field:=1, Criteria1:="text,_", VisibleDropDown:=False
Else
If Sheet2.AutoFilterMode Then Sheet2.AutoFilterMode = False
End If
有关详细信息,请参阅Range.AutoFilter Method。