VBA Colar Valor & Colar Especial

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on April 1, 2023

Este tutorial lhe mostrará como usar o Colar Especial em VBA para colar apenas certas propriedades das células (ex. valores, formatos)

No Excel, quando você copia e cola uma célula você copia e cola todas as propriedades da célula: valores, formatos, fórmulas, formatação de números, bordas, etc:

 

Ao invés disso, você pode “Colar Especial” para colar apenas certas propriedades das céluas. No Excel, o menu Colar Especial pode ser acessado com o atalho CTRL + ALT + V (depois de copiar uma célula):

Aqui você pode ver todas as combinações de propriedades das células que você pode colar.

Se você gravar uma macro enquanto usa o Menu Especial Colar, você pode simplesmente usar o código gerado. Esta é frequentemente a maneira mais fácil de usar o VBA para Colar Especial.

Colar Valores

Colar Valores apenas cola o “valor” da célula. Se a célula continha uma fórmula, Colar Valores cola o resultado da fórmula.

Este código irá copiar e colar valores para uma única célula na mesma guia de trabalho:

Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues

Copiar e Colar Valores para Guias Diferentes

Este exemplo irá copiar e colar valores para células individuais em guia de trabalho diferentes

Sheets("Planilha1").Range("A1").Copy
Sheets("Planilha2").Range("B1").PasteSpecial Paste:=xlPasteValues

Estes exemplos irão copiar e colar valores para um intervalo de células:

Copiar e Colar Valores de Intervalo de Células

Range("A1:B3").Copy
Range("C1").PasteSpecial Paste:=xlPasteValues

Copiar e Colar Valores de Colunas

Columns("A").Copy
Columns("B").PasteSpecial Paste:=xlPasteValues

Copiar e Colar Valores de Linhas

Rows(1).Copy
Rows(2).PasteSpecial Paste:=xlPasteValues

Colar Valores e Formatos de Números

O comando Colar Valores só cola o valor da célula. Nenhuma formatação é colada, incluindo a formatação numérica.

Muitas vezes, quando você cola valores, você provavelmente desejará incluir também a formatação do número, para que seus valores permaneçam formatados. Vejamos um exemplo.

Aqui vamos Colar Valores de uma célula contendo uma porcentagem:

 

Sheets("Planilha1").Columns("D").Copy
Sheets("Planilha2").Columns("B").PasteSpecial Paste:=xlPasteValues

Observe como a formatação do número percentual é perdida e, em vez disso, é mostrado um valor decimal sem formatação.

Em vez disso, vamos usar Colar Valores e Formatos de Número:

Sheets("Planilha1").Columns("D").Copy
Sheets("Planilha2").Columns("B").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

Agora você pode ver que a formatação do número também é colada, mantendo o formato percentual.

.Value em vez de .Paste

Em vez de Colar Valores, você poderia usar a propriedade Value do objeto Range:

Isto definirá o valor da célula A2 igual ao valor da célula B2

Range("A2").Value = Range("B2").Value

Você também pode definir um intervalo de células igual ao valor de uma única célula:

Range("A2:C5").Value = Range("A1").Value

ou um intervalo de células igual a outro intervalo de células de tamanho idêntico:

Range("B2:D4").Value = Range("A1:C3").Value

É menos digitação usar a propriedade Value. Além disso, se você quiser se tornar proficiente com Excel VBA, você deve estar familiarizado em trabalhar com a propriedade Value das células.

Propriedade da Célula Value vs. Value2

Tecnicamente, é melhor usar a propriedade Value2 de uma célula. O Value2 é ligeiramente mais rápido (isso só importa com cálculos extremamente grandes) e a propriedade Value pode dar um resultado da célula truncado se formatada como moeda ou como data. Entretanto, 99%+ do código que eu já vi usa .Value e não .Value2. Eu pessoalmente não uso .Value2, mas você deve estar ciente de que ele existe.

Range("A2").Value2 = Range("B2").Value2

Copy Paste Builder

Criamos um “Copy Paste Code Builder” que facilita a geração de código VBA para copiar (ou cortar) e colar células. O construtor é parte de nosso add-in VBA: AutoMacro.

vba copy paste helper

AutoMacro também contém muitos outros geradores de códigos, uma extensa biblioteca de códigos e poderosas ferramentas de codificação.

Colar Especial – Formatos e Fórmulas

Além do Colar Valores, as opções mais comuns de Colar Especial são Colar Formatos e Colar Fórmulas.

Colar Formatos

Colar Formatos permite colar toda a formatação de células.

Range("A1:A10").Copy
Range("B1:B10").PasteSpecial Paste:=xlPasteFormats

Colar Fórmulas

Colar Fórmulas irá colar apenas as fórmulas das células. Isto também é extremamente útil se você quiser copiar as fórmulas das células, mas não quer copiar as cores de fundo das células (ou outra formatação da célula).

Range("A1:A10").Copy
Range("B1:B10").PasteSpecial Paste:=xlPasteFormulas

Colar Fórmulas e Formatos de Número

Similar ao Colar Valores e Formatos de Número acima, você também pode copiar e colar formatos de número junto com as fórmulas

Aqui copiaremos uma fórmula da célula com formato de números contábeis  apenas com o Colar Fórmulas.

Sheets("Planilha1").Range("D3").Copy
Sheets("Planilha2").Range("D3").PasteSpecial xlPasteFormulas

Observe como a formatação do número é perdida e, em vez disso, é mostrado um valor sem formatação e não arredondado.

Em vez disso, vamos usar o Colar Fórmulas e Formatos de Números

Sheets("Planilha1").Range("D3").Copy
Sheets("Planilha2").Range("D3").PasteSpecial xlPasteFormulasAndNumberFormats

Agora você pode ver que a formatação dos números também é colada, mantendo o formato contábil.

Colar Especial – Transpor e Pular Espaços em Branco

Colar Especial – Transpor

Colar Especial Transpor permite copiar e colar células mudando a orientação de cima para baixo para esquerda-direita (ou vice-versa):

Sheets("Planilha1").Range("A1:A5").Copy
Sheets("Planilha1").Range("B1").PasteSpecial Transpose:=True

 

Colar Especial – Pular Espaços em Branco

Pular espaços em branco é uma opção do Colar Especial que não parece ser usada com a frequência que deveria ser. Ela permite copiar apenas células não em branco ao copiar e colar. Portanto, as células em branco não são copiadas.

Neste exemplo, abaixo, copiaremos a coluna A, faremos um colar normal na coluna B e pularemos os espaços em branco na coluna C. Você pode ver que as células em branco não foram coladas na coluna C na imagem abaixo.

Sheets("Planilha1").Range("A1:A5").Copy
Sheets("Planilha1").Range("B1").PasteSpecial SkipBlanks:=False
Sheets("Planilha1").Range("C1").PasteSpecial SkipBlanks:=True

 

 

Outras Opções de Colar Especial

Colar Especial – Comentários

Sheets("Planilha1").Range("A1").Copy Sheets("Planilha1").Range("E1").PasteSpecial xlPasteComments

 

 

 

Colar Especial – Validação

 

Sheets("Planilha1").Range("A1:A4").Copy
Sheets("Planilha1").Range("B1:B4").PasteSpecial xlPasteValidation

Colar Especial – Todos Usando o Tema de Origem

Workbooks(1).Sheets("Planilha1").Range("A1:A2").Copy
Workbooks(2).Sheets("Planilha1").Range("A1").PasteSpecial
Workbooks(2).Sheets("Planilha1").Range("B1").PasteSpecial xlPasteAllUsingSourceTheme

Colar Especial – Tudo Exceto Bordas

Range("B2:C3").Copy
Range("E2").PasteSpecial
Range("H2").PasteSpecial xlPasteAllExceptBorders

 

Colar Especial – Largura de Coluna

Um dos meus favoritos. Colar Especial Largura da Coluna copiará e colará a largura das colunas.

Range("A1:A2").Copy
Range("C1").PasteSpecial
Range("E1").PasteSpecial xlPasteColumnWidths

 

Colar Especial – Todos os Formatos Condicionais de Mesclagem

 

Range("A1:A4").Copy
Range("C1").PasteSpecial
Range("E1").PasteSpecial xlPasteAllMergingConditionalFormats

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA