Semelhante à planilha, quando copiamos um dado e o colamos em um intervalo de células diferente, temos um método especial de colar que nos permite colar os dados como eles próprios ou apenas as fórmulas ou apenas os valores e da mesma forma podemos usar Colar Especial no VBA usando o método de propriedade de intervalo da seguinte maneira intervalo. paste special () fornecendo o tipo que queremos entre colchetes.
Colar especial no VBA
O Colar Especial no Excel atende de várias maneiras em nosso trabalho diário. Usando colar especial, podemos fazer muito mais coisas do que o normal. Copiar e colar existe em todo o mundo da informática. Mas colar especial é a coisa avançada no Excel.
Como regular o Excel paste special no VBA também, temos o método paste especial para colar os dados copiados. Copiar as coisas no Excel não é uma coisa estranha para os usuários do Excel, eles copiam, colam e, na maioria das vezes, usam o colar especial para servir ao seu propósito de várias maneiras.

No Excel normal, colar inclui muitas opções como colar apenas valores, colar fórmulas, colar formatos e etc.

Colar especial deve colar, operação, pular espaços em branco e transpor assim no VBA também. Temos todos os parâmetros com o método Colar Especial .
A Fórmula da Pasta Especial no VBA
Abaixo está a Fórmula para Colar Especial em VBA

Colar especial está disponível com o objeto VBA Range porque depois de copiar os dados, estaremos colando no intervalo de células, portanto, o método colar especial está disponível com o objeto intervalo .
Tipo de Colar: Após copiar os dados, como você deseja colar. Se você deseja colar valores, fórmulas, formatos, validação, etc … Abaixo está a lista completa de opções disponíveis em Tipo de colagem.

Colar Operação especial: Ao colar, você deseja realizar qualquer tipo de operação, como adicionar, subtrair, divisão, multiplicação ou nenhum.

- (Ignorar espaços em branco): Se quiser ignorar os espaços em branco, você pode escolher VERDADEIRO ou FALSO.
- (Transpor): Se você deseja transpor os dados, pode escolher TRUE ou FALSE.
Exemplos de Colar Especial no Excel VBA
A seguir estão os exemplos de colar especial em VBA.
Exemplo # 1 - Colar apenas valores usando a função VBA PasteSpecial
No primeiro exemplo, iremos colar apenas valores usando colar especial. Suponha que a seguir estão os dados que você tem no nome da planilha chamada Dados de vendas.

Agora vamos realizar a tarefa de copiar e colar usando vários métodos especiais de colagem. Siga as etapas abaixo.
Etapa 1: primeiro crie um nome de macro.

Etapa 2: primeiro, copie o intervalo A1 a D14 do nome da planilha “Dados de vendas”. Para copiar o intervalo, aplique o código abaixo.
Código:
Intervalo ("A1: D14"). Copiar

Passo 3: Após copiar os dados, estaremos colando os valores de G1 a J14. Primeiro, faça referência ao intervalo.
Código:
Intervalo ("G1: J14")

Passo 4: Depois de selecionar o intervalo, precisamos colar. Portanto, coloque um ponto (.) E selecione o método Colar especial.
Código:
Sub PasteSpecial_Example1 () Range ("A1: D14"). Copiar Range ("G1: J14"). PasteSpecial End Sub

Etapa 5: na lista suspensa, selecione a opção “xlPasteValues”.
Código:
Sub PasteSpecial_Example1 () Intervalo ("A1: D14"). Copiar Intervalo ("G1: J14"). PasteSpecial xlPasteValues End Sub

Passo 6: Agora execute este código usando a tecla F5 ou manualmente e veja o que acontece.

Portanto, nosso código copiou os dados de A1 a D14 e colou de G1 a J14 como valores.
Tem executada a tarefa de atalho Excel em folha de cálculo ALT + E + S + V .

Exemplo # 2 - Colar tudo usando VBA PasteSpecial
Agora veremos o que acontece se executarmos a tarefa de xlPasteAll.
Código:
Sub PasteSpecial_Example2() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteAll End Sub
Now, if you run this code manually through the run option or by pressing the F5 key, we will have as it is data.

Example #3 - Paste Formats using VBA PasteSpecial Function
Now we will see how to paste only formats. The Below code would do the job for us.
Code:
Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteFormats End Sub

If you run this code using the F5 key or manually, we will get the only format of the copied range, nothing else.

Example #4 - Paste Column Width using VBA Paste Special
Now we will see how to paste only column width from the copied range. For this, I have increased the column width for one of my data columns.

Apply the below code it will paste only the column width of the copied range.
Code:
Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteColumnWidths End Sub

Run this code and see the difference in the column width.

Now we can see Sales column width has been increased to the column width of our copied range column.
Example #5 - Copy the Data from One Sheet to Another Sheet using VBA Paste Special Option
We have seen how to copy and paste the data on the same sheet. Now we will how to paste from one sheet to another sheet.
Step 1: Before we select the range, we need to tell from which sheet we need to select the data.
Code:
Sub PasteSpecial_Example5() Worksheets ("Sales Data") End Sub

Step 2: After selecting the sheet by its name, then we need to select the range in that sheet. The copy it.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy End Sub

The above code says in the sheet name “Sales Data” copy the Range, (“A1:D14”)
Step 3: Since we are pasting it in a different sheet, we need to select the sheet by its name.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets ("Month Sheet") End Sub

Step 4: Now, in the sheet “Month Sheet,” select the range.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range ("A1:D14") End Sub

Step 5: Using Paste special, we will be pasting values and format.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats End Sub

Step 6: We are not only pasting values and format using VBA Paste Special, but we are pasting it as TRANSPOSE as well.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats, Transpose:=True End Sub

Now run this code. It will copy and transpose the data to the “Month Sheet.”

Things to Remember About Excel VBA PasteSpecial Function
- Se você quiser pular os espaços em branco, você precisa inserir o argumento como TRUE por padrão. Leva FALSE.
- Se você quiser transpor os dados, precisamos selecionar a transposição como TRUE.
- Podemos realizar apenas uma colagem especial por vez.