PasteSpecial
Method determines paste copied information from clipboard to the destination in a specific format. The default paste copies everything (formatting, formula, value etc.). Excel offers Paste Special method which provides various options as listed below:
Paste options
- All: copies everything including formatting, value, formulas, comments and validations.
- Formulas: only formulas will be copied from source to destination
- Values: copies only values from source to destination
- Formats: only formatting would be copied from source to destination
- Comments: only comments would be copied from source to destination
- Validations: only validations would be copied from source to destination
- All using source theme: theme of the copied item will be pasted
- All except borders: Paste will take place except border
- Column widths: only column width would be pasted
- Formula and number formats: only formulas and number formatting would be pasted
- All merging conditional formats: merged conditional formats will be pasted
Paste operations
Can be clubbed with Paste methods listed above to enhance paste operation like you can Multiply, Add, Subtract or Divide on copied data.
- None: its default, no operation would be performed
- Add: all values would be added with copied item
- Multiply: all values would be multiplied with copied item
- Subtract: all values would be subtracted with copied item
- Divide: all values would be divided with copied item
- Skip blanks: blank cells would be ignored from the copied items
- Transpose: copied values would be pasted horizontally or vertically
All with Multiply operation
- Copy any cell having numeric value from which you would like to multiply target values
- Select target range
- Press ALT + E + S or click on Paste button drop-down and select Paste Special from Home tab
- Select Values from Paste block and Select Multiply from Paste Operations block
- Say OK

Paste Column widths
- Select Column and Copy
- Select destination Column
- Press ALT + E + S or click on Paste button drop-down and select Paste Special from Home tab
- Select Column widths option from Paste Special dialog
- Say OK

Copy format
Public Sub PasteSpecialFormattingExample() 'Worksheet object Dim oSheet As Worksheet 'Bind activesheet reference Set oSheet = ActiveSheet 'Declare range object Dim oSourceRange As Range 'Bind selection to range Set oSourceRange = Selection 'Declare target object Dim oTargetRange As Range 'Bind target range Set oTargetRange = oSheet.Range("D2") 'copy source oSourceRange.Copy 'Paste format oTargetRange.PasteSpecial xlPasteFormats 'Cleanup If Not oSourceRange Is Nothing Then Set oSourceRange = Nothing End If If Not oTargetRange Is Nothing Then Set oTargetRange = Nothing End If End Sub
Output

Copy formulas
Public Sub PasteSpecialFormulasExample() 'Worksheet object Dim oSheet As Worksheet 'Bind activesheet reference Set oSheet = ActiveSheet 'Declare range object Dim oSourceRange As Range 'Bind selection to range Set oSourceRange = Selection 'Declare target object Dim oTargetRange As Range 'Bind target range Set oTargetRange = oSheet.Range("D2") 'copy source oSourceRange.Copy 'Paste format oTargetRange.PasteSpecial xlPasteFormulas 'Cleanup If Not oSourceRange Is Nothing Then Set oSourceRange = Nothing End If If Not oTargetRange Is Nothing Then Set oTargetRange = Nothing End If End Sub
Output

Copy with Multiply operations
Public Sub PasteSpecialWithMultiplyExample() 'Worksheet object Dim oSheet As Worksheet 'Bind activesheet reference Set oSheet = ActiveSheet 'Declare range object Dim oSourceRange As Range 'Bind selection to range Set oSourceRange = Selection 'Declare target object Dim oTargetRange As Range 'Bind target range Set oTargetRange = oSheet.Range("C2:C6") 'copy source oSourceRange.Copy 'Paste format oTargetRange.PasteSpecial Operation:=xlPasteSpecialOperationMultiply 'Cleanup If Not oSourceRange Is Nothing Then Set oSourceRange = Nothing End If If Not oTargetRange Is Nothing Then Set oTargetRange = Nothing End If End Sub
Output before

Output after

Transpose
Select the range that you would like to paste as transpose. In this example I will copy rows and paste in each column with the help of transpose:
Steps
- Selection Range
- Copy by pressing CTRL + C from keyboard
- Select single cell of the starting cell where you would like to paste data
- Press ALT + E + S key from keyboard or Paste special from Home tab
- Enable Transpose checkbox from paste operations block
- Say OK
Example

Next >> Understand IF, Nested IF with Logical functions AND, OR, NOT