VBA Paste Special

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 special possiamo fare molte più cose delle 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 il più 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 ed ecc ...

Incolla speciale deve Incollare, Operazione, Salta spazi vuoti e Trasponi in questo modo anche in VBA abbiamo tutti i parametri con il metodo Incolla speciale .

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 lo 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. Sia che tu voglia 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.
  • [Transpose]: se si desidera trasporre i dati, è possibile scegliere TRUE o FALSE.

Esempi di Incolla speciale in Excel VBA

Di seguito sono riportati gli esempi di paste speciali in VBA.

Puoi scaricare questo modello speciale di incolla VBA qui - Modello speciale di incolla VBA

Esempio n. 1: incolla solo i valori utilizzando la funzione PasteSpecial di VBA

Nel primo esempio, eseguiremo incollando solo i valori usando incolla speciale. Supponiamo che di seguito siano 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: prima copia l'intervallo da A1 a D14 dal nome del foglio "Dati di vendita". Per copiare la gamma applicare il codice sottostante.

Codice: 

Intervallo ("A1: D14"). Copia

Passaggio 3: dopo aver copiato i dati, incolleremo i valori da G1 a J14. Prima fai riferimento all'intervallo.

Codice:

Intervallo ("G1: J14")

Passaggio 4: dopo aver selezionato l'intervallo, dobbiamo 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, selezionare l'opzione "xlPasteValues".

Codice:

 Sub PasteSpecial_Example1 () Range ("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 () Intervallo ("A1: D14"). Copia intervallo ("G1: J14"). PasteSpecial xlPasteAll End Sub 

Ora se esegui questo codice manualmente tramite l'opzione di esecuzione o premendo il tasto F5, avremo così come sono i dati.

Esempio n. 3: incolla i formati utilizzando la funzione PasteSpecial di VBA

Adesso vedremo come incollare solo i formati. Il codice seguente farebbe il lavoro per noi.

Codice:

 Sub PasteSpecial_Example3 () Intervallo ("A1: D14"). Copia intervallo ("G1: J14"). PasteSpecial xlPasteFormats End Sub 

Se esegui questo codice usando il tasto F5 o manualmente otterremo l'unico formato dell'intervallo copiato nient'altro.

Esempio # 4 - Incolla la larghezza della colonna utilizzando VBA Paste Special

Ora vedremo come incollare solo la larghezza della colonna dall'intervallo copiato. Per questo, ho aumentato la larghezza della colonna per una delle mie colonne di dati.

Applicare sotto il codice incollerà solo la larghezza della colonna dell'intervallo copiato.

Codice:

 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 the 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 “Month Sheet”.

Things to Remember About Excel VBA PasteSpecial Function

  • If you want to skip blanks you need to enter the argument as TRUE by default it takes FALSE.
  • If you want to transpose the data we need to select the transpose as TRUE.
  • We can perform only one paste special at a time.