So you can simplify that down a bit as you rarely need to select anything. Taking your first two lines:
Code:
Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
The selection is Range("A3") so we can replace selection by Range("A3")
Also we dont need to select our new range to copy it so:
Code:
Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
can be simplified down to the one liner:
Code:
Range(Range("A3"), Range("A3").End(xlDown)).Copy
To paste special is the same:
Code:
Range("AA3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("AA3") is the selection so:
Code:
Range("AA3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False