Este post foi originalmente publicado em https://officevbavsto.blogspot.com/2011/05/quickshot-metodo-copy-do-objeto-range.html.

Quando começamos a aprender VBA, utilizamos o gravador de macros do Excel para descobrir como alguns comandos são feitos via código. Uma das operações mais comuns é a de Copiar e Colar informação de uma célula para outra.

Veja a planilha abaixo:

Se você gravar o código para executar a operação de copiar e colar, encontrará algo parecido com o seguinte:

Sub Macro1()

' Macro1 Macro

  Range("B2:E10").Select
  Selection.Copy
  Range("G2").Select
  ActiveSheet.Paste

End Sub

Funciona! Entretanto, você utiliza 4 linhas de código para executar uma operação que poderia ser feita com APENAS UMA LINHA!

O método Copy do objeto Range (ou Selection) possui um argumento que é ignorado pela maioria dos programadores de VBA: Destination.

O código acima poderia ser escrito da seguinte forma:

Range("B2:E10").Copy Range("G2")

Funciona também das seguintes formas:

Selection.Copy Range("G2")

Ou:

WorkSheets("Sheet1").Range("B2:E10").Copy WorkSheets("Sheet2").Range("G2") 

Ou:

Workbooks("Pasta1.xls").WorkSheets("Sheet1").Range("B2:E10").Copy _
Workbooks("Pasta2.xls").WorkSheets("Sheet2").Range("G2")

Créditos

Photo by olia danilevich from Pexels