Another and faster solution is to copy the range without using the clipboard:
Dim rngS As Range
Set rngS = Sheet1.Range("A1").CurrentRegion
With rngS
Sheet2.Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
This method requires the size of the target range, not just the upper left corner of the range as with PasteSpecial.
But it also has its advantages.
Eg CurrentRegion is the range A1: Z20. In the target range, we only need the first two columns
Dim rngS As Range
Set rngS = Sheet1.Range("A1").CurrentRegion
With rngS
Sheet2.Range("A1").Resize(.Rows.Count, 2).Value = .Value
End With
Artik