用户通过单击四个单选按钮中的一个(每个季度一个)来选择一年中的四分之一,然后我必须根据该季度过滤数据。我正在尝试使用自动过滤器,但我陷入困境,无法弄清楚要做什么。
编辑: 我试图修复的代码片段是这样的:
With Worksheets("Sheet1").Range("A1")
.AutoFilter Field:=2, Criteria1:=cell.Value, VisibleDropDown:=False
max = Application.max(Range("E1:E22222").SpecialCells(xlCellTypeVisible))
在这里,我使用Autofilter只获得与“cell.value”匹配的结果。之后,我需要根据所选季度获得这些结果的子集。最后,我想存储特定字段的最大值。我想念的是我将如何根据特定季度进行过滤。所选季度作为数字保存在变量“selectedQuarter”中(第一季度为“1”,为DatePart(“q”,“12/22/2013”)的结果)。
答案 0 :(得分:0)
您只需要将条件设置为一个操作符与日期连接的字符串,然后使用xlAnd运算符,如下所示:
Private Sub AF(w As Range, selectedQuarter As Integer)
Dim c1 As String, c2 As String
Select Case selectedQuarter
Case 1
c1 = "1/1/2014"
c2 = "4/1/2014"
Case 2
c1 = "4/1/2014"
c2 = "7/1/2014"
Case 3
c1 = "7/1/2014"
c2 = "10/1/2014"
Case 4
c1 = "10/1/2014"
c2 = "1/1/2015"
End Select
w.AutoFilter Field:=1, Criteria1:=">=" & c1, Operator:=xlAnd, _
Criteria2:="<" & c2
End Sub
注意,您可能已经有一个,但是您需要一个标题字段,该字段是范围的一部分,并且自动过滤器箭头将在其中休息。