VBA Paste

Excel VBA Paste

There are three different ways to paste some data from place to another in a worksheet using VBA, the first method is to normally refer the values from one cell to another cell using the assignment operator, another method is by using the paste function and third method is by using the pastespecial function.

Copy and paste is the most common thing we do day in day out in our workplace. In a regular spreadsheet, we don’t need any special introduction to it. In VBA programming, it is very important to understand the concept of the “PASTE” method to understand the program to progress to the next level.

VBA Paste

Understand the VBA Paste Method by Recording a Macro

To start off the proceedings, let’s understand how the paste method works by recording a simple macro. I have entered a value in the cell A1 as shown in the below image.

VBA Paste Macro example 1

Now I will show you the method of copy and pasting from cell A1 to A3. Follow the below steps to record a macro.

Step 1: Click on Record Macro under the excel developer tab.

VBA Paste Macro example 1-1

Step 2: The moment you click on record macro, it will show you the name of the default macro. As of now, just click on OK.

VBA Paste Macro example 1-2

Step 3: The moment you click on, ok, it starts recording the activities you do. The first thing you need to do is select the cell A1 to copy.

VBA Paste Macro example 1-3

Step 4: Now press Ctrl + C to copy the selected cell.

VBA Paste Macro example 1-4

Step 5: Now, select the cell A3 where we need to paste the copied value.

VBA Paste Macro example 1-5

Step 6: Now, paste by pressing Ctrl + V.

VBA Paste Macro example 1-6

Step 7: Now stop the recordings.

Go to a visual basic editor to see the recordings. Below is out recording.

VBA Paste Macro example 1-7

The first thing we have done here is “we have selected the cell A1”, so the code for this activity is Range(“A1”) Select

The next activity is we have copied the cell A1. You can notice here is code is not Range(“A1”). Copy rather it says Selection. Copy, this is because the moment you select the cell, it becomes either an active cell or selection. So it is referred to as Selection. Copy.

The third activity was we have selected the cell A1 to paste, so the code is Range(“A3”). Select

The final activity is we have pasted the value in the cell. Here it says Active Sheet because the moment you select the cell it becomes an active cell of the active sheet. So the code is “ActiveSheet.Paste”

This is how the Paste method works in VBA.


Below is the formula for the VBA paste method:

Expression.Paste (Destination, Link)

An expression is nothing but what is the worksheet name you want to paste. To understand the worksheet object better, read our article on the “VBA Worksheet.”

You can refer to the other worksheet by name. If you want to paste in the same worksheet where you have copied, you can refer to the current sheet by “Active Sheet.”

Destination: After mentioning the worksheet name, we need to refer to the destination cell address. For example, if you want to paste in the worksheet “Sale Data,” and in the cell A5 to A10, then below is the sample code.

Worksheets(“Sales Data”).Range(“A5:A10”)

If you ignore this argument then whatever the active cell will be treated as the destination cell.

Link: If you wish to create a link to the copied range, then you can supply the argument as TRUE or else FALSE.

Examples of Paste Method in Excel VBA

Below are the examples of the Excel VBA Paste Method.

Example #1 – Paste in Same Excel Worksheet

Now let’s see the usage of the VBA paste method in the same sheet. For example, a demonstration, I have few values from cell A1 to A5.

VBA Paste Example 1

Now I want to copy this and paste in C1 to C5. Follow the below steps to write the code on your own.

Step 1: Before posting anything, the first thing we need to do is to copy the range of data. So copy the range from A1 to A5.


Sub Paste_Example1()


End Sub

Example 1-1

Step 2: After copying, we need to specify where we are pasting. To do this first, we need to specify the worksheet name. In this case, since we are pasting in the same sheet, use the Active Sheet object.


Sub Paste_Example1()


End Sub

Example 1-2

Step 3: After selecting the paste method, we need to specify the destination as well. So the destination will be Range C1 to C5.


Sub Paste_Example1()

 ActiveSheet.Paste Destination:=Range("C1:C5")

End Sub

Example 1-3

Step 4: Now, I don’t want to create any link to this VBA paste method, so I am ignoring then the next argument.

Now run this code using the F5 key or manually, it will copy from A1 to A5 and will paste in C1 to C5.

Example 1-4

If you look at the values from C1 to C5, these values areas are in a cell from A1 to A5. So this VBA paste method copies everything and pastes everything.

Now I will use the LINK argument to see how it works. For the LINK’s argument, I have provided TRUE.


Sub Paste_Example1()

 ActiveSheet.Paste Link:=True

End Sub

Example 1-5

This will create a link to the cell from A1 to A5.

Example 1-7

So it has created a link. One notable missing is the formatting of the cells here. It has not pasted any formatting styles.

Example #2 – Paste in Different Excel Worksheet

Copying from one worksheet to another sto sheet requires worksheet names. Assume you want to copy the data from the sheet “First Sheet,” and you want to paste in the sheet “Second Sheet” below is the way of referring the sheets.


Sub Paste_Example2()

    Worksheets("First Sheet").Range("A1:A5").Copy
    Worksheets("Second Sheet").Paste Destination:=Range("C1:C5")

End Sub

Example 2

This will copy data from A1 to A5 from the sheet name called “First Name,” then it will paste in the sheet “Second Sheet” in the range C1 to C5.

VBA Paste Example 2-1


You can download the VBA Paste Template here:- VBA Paste Excel Template

Recommended Articles

This has been a guide to VBA Paste. Here we learn how the Paste method works through Excel VBA Code along with practical examples and a downloadable template. Below you can find some useful excel VBA articles –

  • 3 Courses
  • 12 Hands-on Projects
  • 43+ Hours
  • Full Lifetime Access
  • Certificate of Completion