Excelでは、Worksheetを省略した場合、対象シートはActiveSheetになるのはご存じだと思います。2行目のコードではRangeには、対象Worksheetを指定していますが、Cellsには指定していません。よって
Worksheets("Sheet1").Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(2, 2)).Copy Destination:=Worksheets("Sheet2").Cells(1, 5) '2行目
と解釈されます。
ActiveSheetが "Sheet1" の時は動作しますが、それ以外だとSheetの指定に矛盾が生じるため、エラーになります。正しい記述は
Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1, 1), Worksheets("Sheet1").Cells(2, 2)).Copy Destination:=Worksheets("Sheet2").Cells(1, 5) '2行目
上記のように、すべてにWorksheetsを指定しなければなりません。ただし、こんな記述は面倒ですから、With を使って、下記のように、記述します。
With Worksheets("Sheet1")
.Range(.Cells(1, 1), .Cells(2, 2)).Copy Destination:=Worksheets("Sheet2").Cells(1, 5)
End With