VBA Paste Special

Ähnlich wie beim Arbeitsblatt, wenn wir Daten kopieren und in einen anderen Zellbereich einfügen, haben wir eine spezielle Einfügemethode, mit der wir die Daten als sich selbst oder nur die Formeln oder nur die Werte und dieselbe Art und Weise einfügen können, mit der wir Paste Special in VBA verwenden können Die Range-Eigenschaftsmethode lautet wie folgt: range. Fügen Sie special () ein und geben Sie den gewünschten Typ in die Klammern ein.

Paste Special in VBA

Paste Special in Excel dient in vielerlei Hinsicht in unserer täglichen Arbeit. Mit Paste Special können wir viel mehr als die üblichen Dinge tun. Copy & Paste gibt es überall in der Computerwelt. Aber Paste Special ist das Fortgeschrittene in Excel.

Wie beim regulären Excel-Einfügen, das auch in VBA speziell ist, haben wir auch beim Einfügen der kopierten Daten eine spezielle Methode zum Einfügen. Das Kopieren der Dinge in Excel ist für Excel-Benutzer keine seltsame Sache. Sie kopieren, fügen ein und verwenden meistens Paste Special, um ihren Zweck in vielerlei Hinsicht zu erfüllen.

In regulären Excel-Paste enthält viele Optionen wie nur Werte einfügen, Formeln einfügen, Formate einfügen usw.

Paste Special muss auch in VBA wie folgt eingefügt, bearbeitet, Leerzeichen übersprungen und transponiert werden. Wir haben alle Parameter mit der Paste Special- Methode.

Die Formel der Paste Special in VBA

Unten finden Sie die Formel für Paste Special in VBA

Paste Special ist mit dem VBA Range-Objekt verfügbar, da wir es nach dem Kopieren der Daten in den Zellbereich einfügen, sodass die Paste Special-Methode mit dem Range- Objekt verfügbar ist .

Einfügetyp: Wie möchten Sie nach dem Kopieren der Daten einfügen? Ob Sie Werte, Formeln, Formate, Validierung usw. einfügen möchten. Nachfolgend finden Sie die vollständige Liste der unter Einfügen-Typ verfügbaren Optionen .

Spezielle Operation einfügen: Während des Einfügens möchten Sie alle Arten von Operationen ausführen, z. B. Addieren, Subtrahieren, Dividieren, Multiplizieren oder Keine.

  • [Leerzeichen überspringen ]: Wenn Sie Leerzeichen überspringen möchten, können Sie WAHR oder FALSCH wählen.
  • [Transponieren]: Wenn Sie die Daten transponieren möchten, können Sie TRUE oder FALSE wählen.

Beispiele für Paste Special in Excel VBA

Im Folgenden finden Sie Beispiele für Paste-Spezial in VBA.

Sie können diese VBA Paste Special Template hier herunterladen - VBA Paste Special Template

Beispiel 1 - Nur Werte mit der VBA PasteSpecial-Funktion einfügen

Im ersten Beispiel werden nur Werte mit Paste Special eingefügt. Angenommen, unten sind die Daten aufgeführt, die Sie im Blattnamen "Verkaufsdaten" haben.

Jetzt werden wir die Aufgabe des Kopierens und Einfügens mit verschiedenen speziellen Einfügemethoden ausführen. Befolgen Sie die folgenden Schritte.

Schritt 1: Erstellen Sie zuerst einen Makronamen.

Schritt 2: Kopieren Sie zuerst den Bereich A1 bis D14 vom Blattnamen „Verkaufsdaten“. Um den Bereich zu kopieren, wenden Sie den folgenden Code an.

Code: 

Bereich ("A1: D14"). Kopieren

Schritt 3: Nach dem Kopieren der Daten werden die Werte von G1 nach J14 eingefügt. Verweisen Sie zuerst auf den Bereich.

Code:

Bereich ("G1: J14")

Schritt 4: Nach Auswahl des Bereichs müssen wir einfügen. Setzen Sie also einen Punkt (.) Und wählen Sie die Methode Spezial einfügen.

Code:

 Sub PasteSpecial_Example1 () Bereich ("A1: D14"). Kopierbereich ("G1: J14"). PasteSpecial End Sub 

Schritt 5: Wählen Sie aus der Dropdown-Liste die Option "xlPasteValues".

Code:

 Sub PasteSpecial_Example1 () Bereich ("A1: D14"). Kopierbereich ("G1: J14"). PasteSpecial xlPasteValues ​​End Sub 

Schritt 6: Führen Sie diesen Code nun mit der Taste F5 oder manuell aus und sehen Sie, was passiert.

Unser Code hat also die Daten von A1 nach D14 kopiert und als Werte von G1 nach J14 eingefügt.

Es hat die Aufgabe der Excel-Tastenkombination im Arbeitsblatt ALT + E + S + V ausgeführt .

Beispiel 2 - Alle mit VBA PasteSpecial einfügen

Jetzt werden wir sehen, was passiert, wenn wir die Aufgabe von xlPasteAll ausführen.

Code:

 Sub PasteSpecial_Example2 () Bereich ("A1: D14"). Kopierbereich ("G1: J14"). PasteSpecial xlPasteAll End Sub 

Wenn Sie diesen Code nun manuell über die Ausführungsoption oder durch Drücken der Taste F5 ausführen, werden Daten angezeigt.

Beispiel 3 - Einfügen von Formaten mit der VBA PasteSpecial-Funktion

Jetzt werden wir sehen, wie nur Formate eingefügt werden. Der unten stehende Code würde die Arbeit für uns erledigen.

Code:

 Sub PasteSpecial_Example3 () Bereich ("A1: D14"). Kopierbereich ("G1: J14"). PasteSpecial xlPasteFormats End Sub 

Wenn Sie diesen Code mit der Taste F5 oder manuell ausführen, erhalten wir das einzige Format des kopierten Bereichs, sonst nichts.

Beispiel 4 - Einfügen der Spaltenbreite mit VBA Paste Special

Jetzt werden wir sehen, wie nur die Spaltenbreite aus dem kopierten Bereich eingefügt wird. Dafür habe ich die Spaltenbreite für eine meiner Datenspalten erhöht.

Wenn Sie den folgenden Code anwenden, wird nur die Spaltenbreite des kopierten Bereichs eingefügt.

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 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.