Rückkehr in VBA-Code-Beispiele

VBA – Ausschneiden, Kopieren, Einfügen aus einem Makro

In diesem Lehrgang lernen Sie verschiedene Methoden zum Kopieren und Einfügen sowie zum Ausschneiden und Einfügen mit einem VBA-Makro kennen. Lesen Sie das begleitende Tutorial über das Einfügen von Werten und PasteSpecial, um mehr über die erweiterten Kopier- und Einfügeoptionen zu erfahren. So verwenden Sie diesen Code: Öffnen Sie den Visual Basic Editor (Alt + F11), fügen Sie ein neues Modul ein(Einfügen > Modul) und kopieren Sie den gewünschten Code in das Modul

Kopieren/Ausschneiden und Einfügen einer einzelnen Zelle

In diesem Beispiel wird eine einzelne Zelle, A1, kopiert oder ausgeschnitten und in B1 eingefügt:

Sub Einfügen_EineZelle()

    'Einzelne Zelle kopieren und einfügen
    Range("A1").Copy Range("B1")

    'Einzelne Zelle ausschneiden und einfügen
    Range("A1").Cut Range("B1")

End Sub

Auswahl kopieren

Wenn Sie die aktuelle Auswahl kopieren möchten, verwenden Sie dies:

Sub AuswahlKopieren()

'Einfügen in einen definierten Bereich
Selection.copy range("b1")

'Versatz Einfügen (Versatz von 2 Zellen nach unten und 1 nach rechts)
Selection.copy
Selection.offset(2,1).paste

Application.CutCopyMode = False

End Sub

Kopieren/Ausschneiden und Einfügen eines Zellenbereichs

Dieses Beispiel kopiert oder schneidet aus und fügt einen Bereich von Zellen, A1:A3, in B1:B3 ein:

Sub Einfuegen_Bereich()

    'Kopieren und Einfügen eines Bereichs von Zellen
    Range("A1:A3").Copy Range("B1:B3")

    'Ausschneiden und Einfügen eines Bereichs von Zellen
    Range("A1:A3").Cut Range("B1:B3")

End Sub

Kopieren/Ausschneiden und Einfügen einer ganzen Spalte

Im Folgenden werden wir einige schnelle Beispiele zeigen. In unserem Artikel über das Kopieren und Einfügen von Zeilen und Spalten finden Sie ausführliche Beispiele, Erklärungen und Variationen. In diesem Beispiel wird eine ganze Spalte, A, kopiert oder ausgeschnitten und in B eingefügt:

Sub EinfuegenEineSpalte()

    'Spalte kopieren und einfügen
    Range("A:A").Copy Range("B:B")


    'Spalte ausschneiden und einfügen
    Range("A:A").Cut Range("B:B")

End Sub

Kopieren/Ausschneiden und Einfügen einer ganzen Zeile

Dieses Beispiel kopiert eine ganze Zeile oder schneidet sich aus und fügt sie von 1 nach 2 ein:

Sub Einfuegen_EineZeile()

    'Zeile kopieren und einfügen
    Range("1:1").Copy Range("2:2")


    'Zeile ausschneiden und einfügen
    Range("1:1").Cut Range("2:2")

End Sub

Kopieren/Ausschneiden und Einfügen in ein anderes Arbeitsblatt oder Arbeitsmappe

Sub Einfuegen_Anderes_Arbeitsblatt_oder_Arbeitsmappe()

    'Ausschneiden oder Kopieren und Einfügen in ein anderes Arbeitsblatt
    Worksheets("sheet1").Range("A1").Copy Worksheets("sheet2").Range("B1") 'Kopieren
    Worksheets("Blatt1").Range("A1").Cut Worksheets("Blatt2").Range("B1") 'Ausschneiden

    'Ausschneiden oder Kopieren und Einfügen in eine andere Arbeitsmappe
    Workbooks("Mappe1.xlsm").Worksheets("Blatt1").Range("A1").Copy _ 
    Workbooks("Mappe2.xlsm").Worksheets("Blatt1").Range("B1") 'Kopieren
    Workbooks("Mappe1.xlsm").Worksheets("Blatt1").Range("A1").Cut _ 
    Workbooks("Mappe2.xlsm").Worksheets("Blatt1").Range("B1") 'Ausschneiden

    Application.CutCopyMode = False
End Sub

Wert einfügen

Normalerweise fügen Sie beim Kopieren und Einfügen alle Eigenschaften einer Zelle ein. Dies bedeutet Formatierung, Formeln usw. Mit Value Paste können Sie die Werte einer Zelle kopieren und einfügen und nichts anderes. Der einfachste Weg, Value Paste in VBA zu verwenden, ist es, den Wert der Zelle direkt zu definieren:

Sub WertEinfuegen()

    'Zellenwerte einfügen
    Range("B1").Value = Range("A1").Value
    Range("B1:B3").Value = Range("A1:A3").Value

    'Werte zwischen Arbeitsblättern festlegen
    Worksheets("Blatt2").Range("A1").Value = Worksheets("Blatt1").Range("A1").Value

    'Werte zwischen Arbeitsmappen festlegen
    Workbooks("Mappe2.xlsm").Worksheets("Blatt1").Range("A1").Value = _
    Workbooks("Mappe1.xlsm").Worksheets("Blatt1").Range("A1").Value

    Application.CutCopyMode = False
End Sub

Inhalte einfügen

Mit PasteSpecial können Sie bestimmte Eigenschaften von Zellen kopieren und einfügen (Beispiele: Formate, Werte, Spaltenbreiten usw.). Außerdem können Sie damit spezielle Einfügeoperationen durchführen (Beispiele: Leerzeichen überspringen, Transponieren). Nachfolgend werden wir uns einige Beispiele ansehen, aber wenn Sie es genauer wissen wollen, lesen Sie unser Tutorial über das Einfügen von Werten und PasteSpecial.

Sub InhalteEinfuegen()

    'Führen Sie "Inhalte einfügen" durch:
    Range("A1").Copy
    'Einfügen von Formaten
    Range("B1").PasteSpecial Paste:=xlPasteFormats
    'Einfügen von Spaltenbreiten
    Range("B1").PasteSpecial Paste:=xlPasteColumnWidths
    'Formeln einfügen
    Range("B1").PasteSpecial Paste:=xlPasteFormulas

    'Mehrere PasteSpecial-Operationen auf einmal durchführen:
    Range("A1").Copy
    'Einfügen von Formaten und Transponieren
    Range("B1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

    Application.CutCopyMode = False
End Sub

Zwischenablage löschen

Nach dem Kopieren und Einfügen möchten Sie vielleicht die Zwischenablage löschen. Das tun wir in einigen der obigen Codebeispielen. Um die Excel-Zwischenablage zu löschen, setzen wir Application.CutCopyMode auf False:

Application.CutCopyMode = False

vba zwischenablage loeschen

Dadurch wird die Zwischenablage von Excel gelöscht. Die Windows-Zwischenablage wird jedoch nicht gelöscht. Um die Windows-Zwischenablage zu löschen, folgen Sie den Anweisungen hier.

 

VBA-Programmierung leicht gemacht

Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – einen VBA-Code-Builder, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu programmieren!

automacro uebersicht bereiche kopieren

 

Mehr erfahren!