Maybe something like this.
Sub X()
Dim rngOperation As Range
Dim rngTaskGroup As Range
Dim rngData As Range
Dim wbkReport As Workbook
Set rngOperation = Worksheets("Report").Range("B2")
Set rngTaskGroup = Worksheets("Report").Range("B4")
Set rngData = Worksheets("Data").UsedRange
Set rngData = rngData.Offset(1, 0).Resize(rngData.Rows.Count - 1)
rngData.Parent.Unprotect
rngData.AutoFilter 2, rngOperation
rngData.AutoFilter 3, rngTaskGroup
rngData.AutoFilter 24, "VACANT"
If rngData.SpecialCells(xlCellTypeVisible).Cells.Count > rngData.Columns.Count Then
Set wbkReport = Workbooks.Add
rngData.SpecialCells(xlCellTypeVisible).Copy wbkReport.Worksheets(1).Range("A1")
wbkReport.SaveAs "C:\Report.xls"
wbkReport.Close False
End If
rngData.AutoFilter
rngData.Parent.Protect
Set wbkReport = Nothing
End Sub
Bookmarks