Greetings,
I have a routine that iterates through many worksheets and Autofilters (using criteria filterStart and filterEnd) a range of data (A8:H200) using (field:=1). The code works well for that. What I want to do is filter using field:=1 unless field:=1 is empty, then I want to filter by another field. I have no idea how to accomplish this.
Thanks for any help.
I have a routine that iterates through many worksheets and Autofilters (using criteria filterStart and filterEnd) a range of data (A8:H200) using (field:=1). The code works well for that. What I want to do is filter using field:=1 unless field:=1 is empty, then I want to filter by another field. I have no idea how to accomplish this.
Code:
Sub ApplyDateFilter() Dim Ws As Worksheet Dim filterStart As Long, filterEnd As Long Dim i As Integer, reply As Integer filterStart = Range("B1").Value 'assume this is the start date filterEnd = Range("B2").Value 'assume this is the end date If filterStart = 0 Or filterEnd = 0 Then reply = MsgBox("Please enter both filter dates!", vbOK, "Filter Dates") Else Application.ScreenUpdating = False For i = 2 To Sheets.Count - 1 'ignores the first and last worksheet Set Ws = Sheets(i) Ws.AutoFilterMode = False 'Remove any existing filters Ws.Range("A8:H200").AutoFilter field:=1, Criteria1:=">=" & filterStart, _ Operator:=xlAnd, Criteria2:="<=" & filterEnd Ws.Activate Ws.Range("I1").Select Center_it 'Puts filtered totals in visible window Next i Sheet1.Select Range("B1:B2").Interior.ColorIndex = 3 Application.ScreenUpdating = True End If End Sub
Comment