🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

VBA Ausschneiden (Cut) in Excel — Range.Cut, Cut vs. Copy und die zwei Wege, das Ausgeschnittene abzulegen

|

VBA Ausschneiden (Cut) in Excel — Range.Cut, Cut vs. Copy und die zwei Wege, das Ausgeschnittene abzulegen

KurzfassungRange.Cut hebt Zellen in den Ausschneidemodus der Zwischenablage. Dann legen Sie sie ab, und es gibt genau zwei Wege, die das Gegenteil tun: rng.Cut Destination:=dest (ein Paste) legt die Zellen auf dest und überschreibt es, während rng.Cut und dann dest.Insert eine Lücke öffnet und Zellen beiseite schiebt, sodass nichts verloren geht. Cut verschiebt außerdem — es leert die Quelle — wo Copy dupliziert. Räumen Sie die Zwischenablage mit Application.CutCopyMode = False auf, wenn Sie fertig sind.

Sub CutBasics()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Data")
    ws.Range("A2:D2").Cut                       ' die Zellen der Zeile aufheben (Laufrahmen)
    ws.Range("A10").Insert Shift:=xlDown         ' Insert: die ausgeschnittenen Zellen einfuegen - schiebt, ueberschreibt nicht
    Application.CutCopyMode = False              ' den Zwischenablage-Zustand wegraeumen
End Sub

Cut ist das Verb unter dem Zeilen verschieben und dem Spalten verschieben. Verstehen Sie, was es in die Zwischenablage legt und die zwei Wege, es wieder herunterzunehmen, und jeder darauf gebaute Zug verhält sich vorhersehbar.

Was Sie lernen

  • Cut gegen Copy — ein Verschieben leert die Quelle, ein Kopieren lässt sie an Ort und Stelle
  • Die zwei Abnehmer eines Ausschnitts — Destination:= / Paste überschreibt, Insert schiebt
  • Warum Application.CutCopyMode = False wichtig ist, und was der Laufrahmen wirklich ist
  • Warum Cut einen Mehrbereich (Union) ablehnt, den Copy manchmal toleriert
  • Warum eine Formel, die auf ausgeschnittene Zellen zeigt, ihnen folgt, anders als ein Löschen, das sie bricht

Cut verschiebt; Copy dupliziert

Der Unterschied in einem Wort ist, wie die Quelle aussieht, wenn Sie fertig sind. Copy lässt die Quelle genau dort, wo sie war — Sie haben jetzt zwei Kopien. Cut entfernt die Quelle, sobald die Zellen irgendwo landen — Sie haben eine, an einem neuen Platz:

ws.Range("A2:D2").Copy ws.Range("A20")     ' A2:D2 BLEIBT, A20 bekommt ein Duplikat
ws.Range("A2:D2").Cut ws.Range("A20")      ' A2:D2 wird GELEERT, A20 bekommt die Originale

Cut ist also zum Verschieben und Copy zum Duplizieren. Zum Verschieben zu Copy zu greifen — kopieren, dann die Quelle von Hand löschen — ist eine klassische Quelle halbfertiger Verschiebungen, bei denen die Kopie landet, aber das Löschen vergessen wird oder den falschen Bereich löscht. Ist das Ziel ein Verschieben, schneiden Sie aus.

Die zwei Wege, das Ausgeschnittene abzulegen

Sind die Zellen einmal im Ausschneidemodus in der Zwischenablage, entscheidet die Art, wie Sie sie ablegen, ob Daten überleben. Diese zwei Zeilen sehen ähnlich aus und tun das Gegenteil:

ws.Range("A2:D2").Cut Destination:=ws.Range("A10")   ' PASTE - landet auf A10:D10, ueberschreibt es
ws.Range("A2:D2").Cut
ws.Range("A10").Insert Shift:=xlDown                  ' INSERT - oeffnet eine Luecke bei A10, schiebt nach unten

Cut Destination:= (und ein manuelles .Cut und dann .Paste) ist ein Paste: Die ausgeschnittenen Zellen landen auf dem Ziel und überschreiben, was dort war. .Insert nach einem .Cut ist ein Insert cut cells: Das Ziel und alles dahinter rückt beiseite, um Platz zu machen, und nichts wird überschrieben. Wählen Sie Paste, wenn das Ziel leer ist und die Zellen genau dort landen sollen; wählen Sie Insert, wenn Sie Zellen zwischen andere einreihen — das ist ein Verschieben.

CutCopyMode und der Laufrahmen

Nach Range.Cut (oder Copy) ohne Ziel bleibt Excel in einem besonderen Zustand — die Quelle hat einen laufenden gestrichelten Rahmen, den „Laufrahmen" (die „laufenden Ameisen"), und Excel wartet darauf, dass Sie einfügen oder mit Insert einreihen. Dieser Zustand ist Application.CutCopyMode, und ihn hängen zu lassen ist unsauber: Das Nächste, was der Nutzer tut, kann ein versehentliches Einfügen auslösen, und das Drücken von Escape oder das Bearbeiten einer Zelle bricht ihn auf eine Weise ab, die Ihr Makro nicht eingeplant hat.

ws.Range("A2:D2").Cut
ws.Range("A10").Insert Shift:=xlDown
Application.CutCopyMode = False        ' den Laufrahmen abbrechen, die Zwischenablage freigeben

Cut Destination:= und .Insert schließen die Operation ab und räumen den Modus für Sie auf, dort ist die zusätzliche Zeile also doppelt gemoppelt. Aber immer wenn Sie .Cut oder .Copy und dann andere Arbeit erledigen, bevor Sie einfügen, beenden Sie mit Application.CutCopyMode = False, damit Sie Excel nie mitten im Ausschneiden zurücklassen.

Cut lehnt einen Mehrbereich ab

Cut arbeitet auf einem zusammenhängenden Block. Geben Sie ihm einen Mehrbereich — Zellen, mit Union verbunden, oder eine Mehrfachauswahl wie Range("A2:D2, A8:D8") — und es wirft einen Laufzeitfehler, denn es gibt keinen sinnvollen einzelnen Platz, um zwei unverbundene Blöcke abzulegen:

Union(ws.Range("A2:D2"), ws.Range("A8:D8")).Cut   ' Laufzeitfehler - Cut braucht einen Block

Copy ist bei formgleichen Mehrbereichen manchmal nachsichtiger, was ein weiterer Grund ist, warum Cut und Copy nicht austauschbar sind. Um mehrere verstreute Zeilen zu verschieben, schneiden Sie sie einen Block nach dem anderen aus und fügen sie ein (von unten nach oben, wenn sie gestapelt sind), statt zu versuchen, alle auf einmal auszuschneiden — siehe Zeilen verschieben.

Cut trägt Verweise mit; Löschen bricht sie

Hier ist die Eigenschaft, die das Ausschneiden zu einem sicheren Zug macht. Wenn Sie Zellen ausschneiden, schreibt Excel jede Formel um, die auf sie zeigt, sodass die Verweise den Zellen an ihr neues Zuhause folgen: =Data!B2 liest weiterhin denselben Wert, nachdem B2 nach B40 ausgeschnitten wurde. Das ist das genaue Gegenteil vom Löschen dieser Zellen, wo eine Formel, die in den gelöschten Bereich zeigt, zu =#REF! zusammenfällt und kaputt bleibt.

Der Grund liegt in der Bedeutung jedes Verbs. Ein Ausschneiden verlagert Daten — die Daten existieren weiter, ihre Verweise haben also weiterhin etwas, worauf sie zeigen, und Excel aktualisiert sie. Ein Löschen zerstört Daten — es bleibt nichts, worauf man zeigen könnte, also brechen die Verweise. Wenn Sie dieselben Zahlen an einem neuen Platz wollen und jede Formel weiter funktionieren soll, ist Cut das Werkzeug; wenn die Zahlen weg sollen, rechnen Sie mit den #REF! und räumen sie auf.

Wie ExcelMaster hilft

Cut verbirgt drei Weggabelungen, die alle still scheitern — verschieben oder duplizieren (Cut gegen Copy), überschreiben oder schieben (Paste gegen Insert) und fertig oder mitten im Ausschneiden (CutCopyMode) — dazu der Mehrbereich, der glatt einen Fehler wirft. Wählen Sie falsch, bekommen Sie verlorene Quellzeilen, ein überschriebenes Ziel oder eine Arbeitsmappe, die im Ausschneidemodus feststeckt.

ExcelMaster lässt Sie die Absicht sagen — „verschiebe diese Zellen unter die Summen, ohne etwas zu überschreiben" — und schneidet aus, statt zu kopieren, fügt mit Insert ein, statt mit Paste zu überschreiben, verarbeitet die Operation einen zusammenhängenden Bereich nach dem anderen und räumt CutCopyMode auf, wenn es fertig ist. Sie behalten die Arbeitsmappe und den Code.

Häufig gestellte Fragen

Was macht Range.Cut in VBA?

Range.Cut legt die Zellen des Bereichs in den Ausschneidemodus der Zwischenablage und zeigt den Laufrahmen. Für sich allein verschiebt es noch nichts — Sie schließen das Verschieben ab, indem Sie einfügen (Cut Destination:=, was das Ziel überschreibt) oder .Insert auf dem Ziel aufrufen (was Zellen beiseiteschiebt und erhält). Sobald die Zellen landen, wird die Quelle geleert.

Was ist der Unterschied zwischen Cut und Copy in VBA?

Cut verschiebt — die Quelle wird geleert, nachdem die Zellen gelandet sind, sodass Sie mit einer Kopie an einem neuen Platz enden. Copy dupliziert — die Quelle bleibt, und das Ziel bekommt eine zweite Kopie. Nutzen Sie Cut zum Verschieben, Copy zum Duplizieren; nutzen Sie nicht Kopieren-dann-Löschen als Verschiebung, das bleibt leicht halb fertig.

Warum sollte ich Application.CutCopyMode = False setzen?

Um den Laufrahmen-Zustand der Zwischenablage nach einem Ausschneiden oder Kopieren abzubrechen. Ihn anzulassen lädt ein versehentliches Einfügen durch den nächsten Tastendruck ein und lässt Excel mitten in der Operation warten. Cut Destination:= und .Insert räumen ihn automatisch auf, aber setzen Sie Application.CutCopyMode = False selbst, wann immer Sie .Cut oder .Copy und dann andere Arbeit erledigen, bevor Sie einfügen.

Warum wirft VBA einen Fehler, wenn ich einen Union-Bereich ausschneide?

Weil Cut nur einen zusammenhängenden Block verarbeitet. Ein Union oder eine Mehrfachauswahl sind mehrere unverbundene Blöcke, und es gibt keinen einzelnen Platz, um sie abzulegen, also wirft Cut einen Laufzeitfehler. Schneiden Sie stattdessen einen Block nach dem anderen aus und fügen ihn ein. (Copy ist bei formgleichen Mehrbereichen manchmal nachsichtiger.)

Brechen Formelverweise, wenn ich Zellen ausschneide?

Nein — sie folgen. Excel schreibt Formeln, die auf ausgeschnittene Zellen verweisen, so um, dass sie auf den neuen Ort der Zellen zeigen, und liest weiterhin dieselben Daten. Das ist der Unterschied zum Löschen von Zellen, das Verweise ohne etwas zum Draufzeigen zurücklässt und sie zu #REF! zusammenfallen lässt.

Getestet in

Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 17.09.2026.

Verwandte Anleitungen: VBA Zeilen verschieben · VBA Spalten verschieben · VBA Kopieren und Einfügen · VBA PasteSpecial · VBA Zeilen löschen