Simile al foglio di lavoro quando copiamo un dato e lo incolliamo su un intervallo di celle diverso, abbiamo un metodo speciale per incollare che ci consente di incollare i dati come se stessi o solo le formule o solo i valori e allo stesso modo possiamo usare Incolla speciale in VBA usando il metodo della proprietà range come segue range. incolla special () fornendo il tipo che vogliamo tra parentesi.
Incolla speciale in VBA
Paste Special in Excel serve in molti modi nel nostro lavoro quotidiano. Usando paste speciali, possiamo fare molte più cose rispetto alle solite. Copia e incolla è presente ovunque nel mondo dei computer. Ma incolla speciale è la cosa avanzata in Excel.
Come il normale Excel incolla speciale anche in VBA, abbiamo un metodo speciale per incollare i dati copiati. Copiare le cose in Excel non è una cosa strana per gli utenti di Excel, copiano, incollano e la maggior parte delle volte usano paste speciali per servire al loro scopo in molti modi.

In Excel normale, incolla include molte opzioni come incolla solo valori, incolla formule, incolla formati e così via …

Incolla speciale deve Incollare, Operazione, Salta spazi vuoti e Trasponi in questo modo anche in VBA. Abbiamo tutti i parametri con il metodo Paste Special .
La formula della pasta speciale in VBA
Di seguito è riportata la formula per Incolla speciale in VBA

Incolla speciale è disponibile con l'oggetto intervallo VBA perché dopo aver copiato i dati, li incolleremo nell'intervallo di celle, quindi il metodo speciale incolla è disponibile con l' oggetto intervallo .
Tipo di incolla: dopo aver copiato i dati, come si desidera incollare. Se desideri incollare valori, formule, formati, convalida, ecc … Di seguito è riportato l'elenco completo delle opzioni disponibili in Incolla tipo.

Incolla operazione speciale: mentre si incolla, si desidera eseguire qualsiasi tipo di operazione come addizione, sottrazione, divisione, moltiplicazione o nessuna.

- (Salta spazi vuoti ): se vuoi saltare gli spazi vuoti, puoi scegliere VERO o FALSO.
- (Trasponi): se desideri trasporre i dati, puoi scegliere VERO o FALSO.
Esempi di Incolla speciale in Excel VBA
Di seguito sono riportati gli esempi di paste speciali in VBA.
Esempio n. 1: incolla solo i valori utilizzando la funzione PasteSpecial di VBA
Nel primo esempio, eseguiremo incollando solo i valori usando paste speciali. Supponi di seguito i dati che hai nel nome del foglio chiamato Dati di vendita.

Ora eseguiremo l'operazione di copia e incolla utilizzando diversi metodi speciali di incolla. Segui i passaggi seguenti.
Passaggio 1: creare prima un nome di macro.

Passaggio 2: in primo luogo, copia l'intervallo da A1 a D14 dal nome del foglio "Dati di vendita". Per copiare l'intervallo, applica il codice seguente.
Codice:
Intervallo ("A1: D14"). Copia

Passaggio 3: dopo aver copiato i dati, incolleremo i valori da G1 a J14. Innanzitutto, fai riferimento all'intervallo.
Codice:
Intervallo ("G1: J14")

Passaggio 4: dopo aver selezionato l'intervallo, è necessario incollare. Quindi metti un punto (.) E seleziona il metodo Incolla speciale.
Codice:
Sub PasteSpecial_Example1 () Intervallo ("A1: D14"). Copia intervallo ("G1: J14"). PasteSpecial End Sub

Passaggio 5: dall'elenco a discesa, seleziona l'opzione "xlPasteValues".
Codice:
Sub PasteSpecial_Example1 () Intervallo ("A1: D14"). Copia intervallo ("G1: J14"). PasteSpecial xlPasteValues End Sub

Passaggio 6: ora esegui questo codice utilizzando il tasto F5 o manualmente e guarda cosa succede.

Quindi il nostro codice ha copiato i dati da A1 a D14 e incollato da G1 a J14 come valori.
Ha eseguito l'operazione di tasto d'eccelle in foglio ALT + E + S + V .

Esempio n. 2: incolla tutto utilizzando VBA PasteSpecial
Adesso vedremo cosa succede se eseguiamo il compito di xlPasteAll.
Codice:
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 vuoi saltare gli spazi, devi inserire l'argomento come VERO per impostazione predefinita. Ci vuole FALSE.
- Se vuoi trasporre i dati, dobbiamo selezionare la trasposizione come TRUE.
- Possiamo eseguire solo una pasta speciale alla volta.