VBA – Recortar, Copiar, Colar a Partir de uma Macro
In this Article
Neste tutorial, você aprenderá vários métodos diferentes para copiar e colar e recortar e colar usando uma macro VBA. Leia o tutorial companheiro sobre Colar Valor e Colar Especial para opções mais avançadas de copiar e colar.
Para usar este código: Abra o Editor Visual Basic(Alt + F11), insira um novo módulo(Insert > Module) e copie e cole o código desejado no módulo.
Copiar (Recortar) e Colar uma Única Célula
Este exemplo copia ou recorta e cola uma única célula, A1 e cola em B1:
Sub Colar_UmaCelula()
'Copia e Cola uma única célula
Range("A1").Copy Range("B1")
'Recorta e Cola uma única célula
Range("A1").Cut Range("B1")
End Sub
Codificação VBA facilitada
Pare de procurar por código VBA online. Saiba mais sobre AutoMacro – Um construtor de códigos VBA que permite aos iniciantes codificar procedimentos a partir do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!
Copiar Seleção
Se você quiser copiar a seleção ativa, use isto:
Sub CopiarSelecao()
'Colar em um intervalo definido
Selection.copy range("b1")
'Deslocar Colar (desloca 2 células para baixo e 1 para a direita)
Selection.copy
Selection.offset(2,1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Copiar (Recortar) e Colar uma Intervalo de Células
Este exemplo copia ou recorta e cola um intervalo de células, A1:A3 para B1:B3 :
Sub Colar_Intervalo()
'Copia e Cola um intervalo de células
Range("A1:A3").Copy Range("B1:B3")
'Recorta e cola um intervalo de células
Range("A1:A3").Cut Range("B1:B3")
End Sub
Copiar (Recortar) e Colar uma Coluna Inteira
A seguir demonstraremos alguns exemplos rápidos. Leia nosso artigo sobre Copiar e Colar Linhas e Colunas para exemplos detalhados, explicações e variações.
Este exemplo copia ou recorta e cola uma coluna inteira, A para B:
Sub ColarUmaColuna()
'Copia e Cola Coluna
Range("A:A").Copy Range("B:B")
'Recorta e Cola Coluna
Range("A:A").Cut Range("B:B")
End Sub
Copiar (Recortar) e Colar uma Linha Inteira
Este exemplo copia ou recorta e cola uma linha inteira, de 1 a 2:
Sub Colar_UmaLinha()
'Copia e Cola Linha
Range("1:1").Copy Range("2:2")
'Recorta e Cola Linha
Range("1:1").Cut Range("2:2")
End Sub
Copiar (Recortar) e Colar em Outra Planilha ou Arquivo
Sub Colar_Outra_Planilha_Arquivo()
'Recortar ou Copiar e Colar para Outra Planilha
Worksheets("Planilha1").Range("A1").Copy Worksheets("Planilha2").Range("B1") 'Copiar
Worksheets("Planilha1").Range("A1").Cut Worksheets("Planilha2").Range("B1") 'Recortar
'Recortar ou Copiar e Colar para Outro Arquivo
Workbooks("Pasta1.xlsm").Worksheets("Planilha1").Range("A1").Copy _
Workbooks("Pasta2.xlsm").Worksheets("Planilha1").Range("B1") 'Copiar
Workbooks("Pasta1.xlsm").Worksheets("Planilha1").Range("A1").Cut _
Workbooks("Pasta2.xlsm").Worksheets("Planilha1").Range("B1") 'Recortar
Application.CutCopyMode = False
End Sub
Colar Valor
Normalmente, quando você Copia e Cola você Cola todas as propriedades de uma célula: formatação, fórmulas, etc… Colar Valor permite copiar e colar os valores das células e nada mais. A maneira mais fácil de Colar Valor em VBA é definir diretamente o valor da célula:
Sub Colar_Valor()
'Colar Valor das Células
Range("B1").value = Range("A1").value
Range("B1:B3").value = Range("A1:A3").value
'Definir valores entre planilhas
Worksheets("Planilha2").range("A1").value = Worksheets("Planilha1").range("A1").value
'Definir valores entre arquivos
Workbooks("Pasta2.xlsm").Worksheets("Planilha1").range("A1").value = _
Workbooks("Pasta1.xlsm").Worksheets("Planilha1").range("A1").value
Application.CutCopyMode = False
End Sub
Colar Especial
O Colar Especial (Paste Special) permite copiar e colar propriedades específicas das células (exemplos: formatos, valores, largura das colunas, etc.). Também permite realizar operações de Colar Especial (exemplos: pular espaços em branco, transpor). Veremos alguns exemplos abaixo, mas para uma leitura mais aprofundada, leia nosso tutorial sobre Colar Valores e Colar Especial Valores.
Sub Colar_Especial()
'Executar uma Operação Colar Especial:
Range("A1").Copy
'Colar Formatos
Range("B1").PasteSpecial Paste:=xlPasteFormats
'Colar Largura das Colunas
Range("B1").PasteSpecial Paste:=xlPasteColumnWidths
'Colar Fórmulas
Range("B1").PasteSpecial Paste:=xlPasteFormulas
'Executar Várias Operações de Colar Especial de uma Vez:
Range("A1").Copy
'Colar Formatos e Transpor
Range("B1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub
Limpar Área de Transferência
Depois de Copiar e Colar você pode querer limpar a área de transferência (nós fazemos em alguns dos exemplos de código acima). Para limpar a área de transferência do Excel, definimos o Application.CutCopyMode como False:
Application.CutCopyMode = False
Isto irá limpar a área de transferência do Excel. Entretanto, não limpará a área de transferência do Windows. Para limpar a área de transferência do Window, siga as instruções aqui.