We can use VBA to Copy a Range to another location or range. Range.Copy method will copy and it will save the copied data in Clipboard then you can select any range and paste. You can also specify the destination range while copying a range.

VBA Copy Method Excel Range Object

VBA to Copy Range in Excel – Syntax

Here is the syntax to copy a range using VBA. Here, Destination is the range which you want to be copied. This is optional, you are not providing the destination range, this will copy to the Clipboard.

Range(“YourRange”).Copy(

[Destination])

VBA to Copy Range in Excel – Examples

Here is the simple example to copy a range. In this example , we are copying Range “A2:D10” to the Clipboard and then Pasting in the Range “E2”.

Sub Copy_Range_To_Clipboard()
Range("A2:D10").Copy 'This will copy the Range "A2:D10" data into Clipboard
'Now you can select any range and paste there
Range("E2").Select
ActiveSheet.Paste
End Sub

VBA to Copy Range to Destination in Excel – Example

Here is the another example to copy a range to specific range. In this example , we are copying Range “A2:D10” and pasting at Range “E2”.

Sub Copy_Range_To_Destination_Range()
Range("A2:D10").Copy Range("E2")
'Or you can write as Range("A2:D10").Copy Destination:=Range("E2")
End Sub

VBA to Copy Range in Excel – Execution Instructions

You can follow the below steps to execute the macro for copying a range using VBA.

  1. Open an Excel Workbook from your start menu or type Excel in your run command
  2. Enter some data in any cells in range “A2:D10″ to test this macro.
  3. Press Alt+F11 to Open VBA Editor or you can go to Developer Tab from Excel Ribbon and click on the Visual Basic Command to launch the VBA Editor
  4. Insert a Module from Insert Menu of VBA
  5. Copy the above code (for copying a range using VBA) and Paste in the code window(VBA Editor)
  6. Save the file as Macro Enabled Workbook (i.e; .xlsm file format)
  7. Press ‘F5′ to run it or Keep Pressing ‘F8′ to debug the code line by line.

Now you can observe that the Range A2:D10 is copied to specific range. This will copy the range including its formats and other elements in that particular range. To copy the specific elements, see the examples on PaseSpecial.