Experiment with (no sorting prior to copying):
Sub blah()
ActiveSheet.Range("A1").AutoFilter Field:=16, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor
With ActiveSheet.AutoFilter
.Range.Copy Sheets("Dtop-Red").Range("A1")
With Intersect(ActiveSheet.UsedRange.Offset(1), .Range.SpecialCells(xlCellTypeVisible))
Sheets("Dtop-Red").Range("P2").Resize(.Columns(1).Cells.Count) = "Dtop-Red"
.EntireRow.Delete
End With
.ShowAllData
.Range.Copy Sheets("Dtop-Ambr-Grn").Range("A1")
Sheets("Dtop-Ambr-Grn").Range("P2").Resize(.Range.Rows.Count - 1) = "Dtop-Ambr-Grn"
.Range.Offset(1).EntireRow.Delete
End With
End Sub