VBA Value Paste & PasteSpecial

Este tutorial mostrará como usar PasteSpecial no VBA para colar apenas certas propriedades da célula (exs. Valores, formatos)

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

Em vez disso, você pode “Colar especial” para colar apenas certas propriedades da célula. No Excel, o menu Colar especial pode ser acessado com o atalho CTRL + ALT + V (após copiar uma célula):

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

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

Colar Valores

Colar valores cola apenas o “valor” da célula. Se a célula contiver uma fórmula, Colar Valores irá colar o resultado da fórmula.

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

12 Intervalo ("A1"). CopiarIntervalo ("B1"). PasteSpecial Paste: = xlPasteValues

Copiar e colar valor para uma folha diferente

Este exemplo irá copiar e colar valores para células únicas em planilhas diferentes

12 Folhas ("Folha1"). Intervalo ("A1"). CopiarPlanilhas ("Planilha2"). Intervalo ("B1"). PasteSpecial Paste: = xlPasteValues

Estes exemplos copiarão e colarão valores para intervalos de células:

Intervalos de copiar e colar de valores

12 Intervalo ("A1: B3"). CopiarIntervalo ("C1"). PasteSpecial Paste: = xlPasteValues

Copiar e Colar Colunas de Valor

12 Colunas ("A"). CopiarColunas ("B"). PasteSpecial Paste: = xlPasteValues

Copiar e valorizar linhas de colagem

12 Linhas (1) .CopiarLinhas (2) .PasteSpecial Paste: = xlPasteValues

Colar valores e formatos numéricos

Colar valores irá colar apenas o valor da célula. Nenhuma formatação é colada, incluindo a formatação de números.

Freqüentemente, ao colar valores, você provavelmente desejará incluir a formatação de número também para que seus valores permaneçam formatados. Vejamos um exemplo.

Aqui iremos valorar a colagem de uma célula contendo uma porcentagem:

12 Folhas ("Folha1"). Colunas ("D"). CopiarFolhas ("Folha2"). Colunas ("B"). PasteSpecial Paste: = xlPasteValues

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

Em vez disso, vamos usar os formatos Colar Valores e Números:

12 Folhas ("Folha1"). Colunas ("D"). CopiarFolhas ("Folha2"). Colunas ("B"). PasteSpecial Paste: = xlPasteValuesAndNumberFormats

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

.Value em vez de .Paste

Em vez de colar valores, você pode usar a propriedade Value do objeto Range:

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

1 Intervalo ("A2"). Valor = Intervalo ("B2"). Valor

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

1 Intervalo ("A2: C5"). Valor = Intervalo ("A1"). Valor

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

1 Intervalo ("B2: D4"). Valor = Intervalo ("A1: C3"). Valor

É menos digitar para usar a propriedade Value. Além disso, se você deseja se tornar proficiente no Excel VBA, deve estar familiarizado com o trabalho com a propriedade Value das células.

Valor da célula vs. propriedade Value2

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

1 Intervalo ("A2"). Valor2 = Intervalo ("B2"). Valor2

Copiar Construtor de Pastas

Criamos um “Copiar e colar o construtor de código” que facilita a geração de código VBA para copiar (ou recortar) e colar células. O construtor faz parte do nosso Suplemento VBA: AutoMacro.

AutoMacro também contém muitos outros Geradores de código, um extenso Biblioteca de Código, e poderoso Ferramentas de codificação.

Colar especial - formatos e fórmulas

Além de 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.

12 Intervalo ("A1: A10"). CopiarIntervalo ("B1: B10"). PasteSpecial Paste: = xlPasteFormats

Colar Fórmulas

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

12 Intervalo ("A1: A10"). CopiarIntervalo ("B1: B10"). PasteSpecial Paste: = xlPasteFormulas

Colar fórmulas e formatos numéricos

Semelhante a Colar Valores e Formatos Numéricos acima, você também pode copiar e colar formatos numéricos junto com as fórmulas

Aqui, copiaremos uma fórmula de célula apenas com Formatação de Número Contábil e Colar Fórmulas.

12 Folhas ("Folha1"). Intervalo ("D3"). CopiarFolhas ("Folha2"). Intervalo ("D3"). PasteSpecial xlPasteFórmulas

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

Em vez disso, vamos usar os formatos Colar Fórmulas e Números:

12 Folhas ("Folha1"). Intervalo ("D3"). CopiarFolhas ("Folha2"). Intervalo ("D3"). PasteSpecial xlPasteFormulasAndNumberFormats

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

Colar especial - transpor e ignorar espaços em branco

Colar especial - transpor

Colar transposição especial permite que você copie e cole células alterando a orientação de cima-baixo para esquerda-direita (ou vice-versa):

12 Folhas ("Folha1"). Intervalo ("A1: A5"). CopiarFolhas ("Folha1"). Intervalo ("B1"). PasteSpecial Transposição: = Verdadeiro

Colar especial - pular espaços em branco

Pular espaços em branco é uma opção especial para colar que não parece ser usada com a frequência que deveria. Ele permite que você copie apenas células que não estejam em branco ao copiar e colar. Portanto, as células em branco não são copiadas.

Neste exemplo abaixo. Vamos copiar a coluna A, colar regularmente na coluna B e pular a colagem dos 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.

123 Folhas ("Folha1"). Intervalo ("A1: A5"). CopiarSheets ("Sheet1"). Range ("B1"). PasteSpecial SkipBlanks: = FalseSheets ("Sheet1"). Range ("C1"). PasteSpecial SkipBlanks: = True

Outras opções especiais de colagem

Colar Especial - Comentários

1 Folhas ("Folha1"). Intervalo ("A1"). Copiar folhas ("Folha1"). Intervalo ("E1"). PasteSpecial xlPasteComments

Colar Especial - Validação

12 Folhas ("Folha1"). Intervalo ("A1: A4"). CópiaFolhas ("Folha1"). Intervalo ("B1: B4"). PasteSpecial xlPasteValidation

Colar especial - todos usando o tema fonte

123 Workbooks (1) .Sheets ("Sheet1"). Range ("A1: A2"). CopyWorkbooks (2) .Sheets ("Sheet1"). Range ("A1"). PasteSpecialWorkbooks (2) .Sheets ("Sheet1"). Range ("B1"). PasteSpecial xlPasteAllUsingSourceTheme

Colar especial - tudo exceto bordas

123 Intervalo ("B2: C3"). CopiarIntervalo ("E2"). ColarEspecialIntervalo ("H2"). PasteSpecial xlPasteAllExceptBorders

PasteSpecial - larguras da coluna

Um favorito pessoal meu. PasteSpecial Column Widths irá copiar e colar a largura das colunas.

123 Intervalo ("A1: A2"). CopiarIntervalo ("C1"). ColarEspecialIntervalo ("E1"). PasteSpecial xlPasteColumnWidths

PasteSpecial - All MergingConditionalFormats

123 Intervalo ("A1: A4"). CopiarIntervalo ("C1"). ColarEspecialIntervalo ("E1"). PasteSpecial xlPasteAllMergingConditionalFormats

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave