Destination range can not accomodate origin range, i.e destination range is
from AA2 to lastcolumn, but origin range is the entire row.
ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Rows.Copy _
Destination:=Range("A1") <====
or
ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeVisible).Rows.Copy _ <<====
Destination:=Range("AA2")
Not tested.