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

VBA Paste Values in Excel — Formeln richtig in ihre Ergebnisse einfrieren

|

VBA Paste Values in Excel — Formeln richtig in ihre Ergebnisse einfrieren

Kurzfassung — Werte einfügen ersetzt eine aktive Formel durch die Zahl, die sie gerade anzeigt. Diese Zahl steht danach für sich allein: Sie können die Zellen löschen, auf die sie verwiesen hat, die Arbeitsmappe berechnet sie nicht mehr neu, und externe Verknüpfungen verstummen. Das Zwischenablage-Rezept lautet .Copy, dann PasteSpecial Paste:=xlPasteValues — aber das nackte xlPasteValues lässt das Zahlenformat weg, sodass Datumswerte als Seriennummern wie 45000 zurückkommen. Nutzen Sie xlPasteValuesAndNumberFormats, wenn die Anzeige zählt, und für ein einfaches Einfrieren ganz ohne Zwischenablage dst.Value = src.Value.

' Einen Formelbereich in seine Ergebnisse einfrieren, die Anzeige bleibt erhalten:
src.Copy
src.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False

' Die Variante ohne Zwischenablage, nur Werte (verliert die Zahlenformate):
dst.Value = src.Value

Eine Formel ist ein Versprechen, neu zu rechnen: =Sheet2!A1*1.1 ist keine Zahl, sondern eine Anweisung, die jedes Mal neu ausgeführt wird, wenn sich Sheet2!A1 ändert. Meistens ist genau das gewollt. Aber manchmal soll die Antwort aufhören, ein Versprechen zu sein, und zur Tatsache werden — ein Monat, den Sie archivieren, ein Schnappschuss, den Sie verschicken, eine volatile Formel, die Sie stoppen wollen. Genau das macht Werte einfügen. Es ist die meistgesuchte Ecke von PasteSpecial, und es hat eine Falle, die Sie kennen sollten, bevor Sie es einsetzen.

Was Sie lernen

  • Das Denkmodell — Werte einfügen macht aus einem Versprechen, neu zu rechnen eine einfache Zahl
  • Die eine Regel, die Daten rettet — einfrieren bevor Sie die Quelle löschen, nicht danach
  • Die Formatfalle — xlPasteValues entfernt das Zahlenformat, und Datumswerte werden zu Seriennummern
  • Die drei echten Aufgaben — ein Ergebnis archivieren, Volatiles stoppen, externe Verknüpfungen kappen
  • Die Abkürzung ohne Zwischenablage — dst.Value = src.Value
  • Wann Sie nicht einfrieren sollten, weil eine Formel gerade ihre Aufgabe erfüllt

Das Denkmodell: ein Schnappschuss, keine Verknüpfung

Eine Formel verknüpft eine Zelle mit ihren Eingaben. Werte einfügen kappt diese Verknüpfung und hinterlässt die Zahl, die im Moment der Ausführung angezeigt wurde — einen Schnappschuss. Die Pixel sehen identisch aus; das Verhalten ist völlig anders. Vorher war die Zelle =A1+A2 und würde A1 und A2 für immer folgen. Danach ist die Zelle die literale 350, und A1 und A2 können sich ändern, verschoben werden oder verschwinden, ohne dass es die Zelle bemerkt.

Genau dieser eine Unterschied — Verknüpfung gegen Schnappschuss — ist die ganze Entscheidung. Wenn Sie fragen „muss diese Zahl ihre Eingaben noch verfolgen?", verrät die Antwort, ob Sie die Formel belassen oder einfrieren sollten. Werte einfügen ist Ihre Antwort: „Nein, dieses Ergebnis ist jetzt endgültig."

Die wichtigste Regel: einfrieren, bevor Sie die Quelle löschen

Hier ist der Fehler, der Daten zerstört. Sie bauen einen Bericht mit Formeln, die auf ein Rohdatenblatt verweisen, und löschen dann das Rohdatenblatt, um die Datei schlanker zu machen — und jede Formel bricht zu #REF! zusammen, weil die Zellen, auf die sie zeigten, verschwunden sind:

dst.Formula = "=RawData!A1 * 1.1"   ' eine lebendige Verknuepfung zu einem anderen Blatt
Worksheets("RawData").Delete         ' die Quelle verschwindet...
' dst zeigt jetzt #REF! - die Zahl ist verloren

Die Lösung ist die Reihenfolge: Zuerst die Ergebnisse in Werte einfrieren, dann die Quelle löschen. Sobald dst.PasteSpecial Paste:=xlPasteValues gelaufen ist, enthält die Zelle eine echte Zahl, die RawData nichts mehr schuldet, also ist das Löschen des Blatts sicher. Die Regel gilt allgemein: Immer wenn Sie im Begriff sind, Zellen zu entfernen, zu überschreiben oder zu verschieben, von denen eine Formel abhängt, fügen Sie zuerst die Werte ein. Ein #REF! lässt sich nicht mehr rückgängig machen, sobald die Datei gespeichert und geschlossen wurde.

Die Formatfalle: nur Werte entfernt das Zahlenformat

Das ist die Überraschung, die Leute zurück zur Suche schickt. xlPasteValues kopiert den Wert — und ein Wert in Excel ist eine nackte Zahl. Ein Datum wird als Seriennummer gespeichert (Tage seit 1900), eine Währung als reine Zahl, ein Prozentwert als Dezimalzahl. Das Zahlenformat der Formel war das, was sie als 2026-03-15, $1,200 und 35% angezeigt hat. Fügen Sie nur Werte ein, und diese Formatierung bleibt zurück:

src.Copy
src.PasteSpecial Paste:=xlPasteValues                 ' 2026-03-15 wird zu 46091
src.PasteSpecial Paste:=xlPasteValuesAndNumberFormats ' 2026-03-15 bleibt 2026-03-15

Der ehrliche Standard für alles, was ein Mensch liest, ist also xlPasteValuesAndNumberFormats — es trägt das Anzeigeformat zusammen mit der Zahl mit. Greifen Sie nur dann zum nackten xlPasteValues, wenn Sie gezielt die rohen zugrunde liegenden Zahlen wollen — für eine Berechnung oder den Export in ein System, das ohnehin neu formatiert.

Drei Aufgaben, die Werte einfügen wirklich erledigt

Formeln einzufrieren ist keine einzelne Aufgabe, sondern drei, und sie zu benennen zeigt Ihnen, wann Sie es tun sollten:

  • Ein Ergebnis archivieren. Eine Monatszusammenfassung, berechnet aus den Daten dieses Monats, sollte sich nicht ändern, wenn die Daten des nächsten Monats eintreffen. Frieren Sie sie ein, und die Zahl gehört dauerhaft diesem Monat.
  • Volatile Formeln stoppen. NOW(), RAND(), TODAY() und OFFSET() berechnen bei jeder Bearbeitung neu — Lärm, sobald Sie den gewünschten Wert haben. Werte einfügen fixiert sie.
  • Externe Verknüpfungen kappen. Eine Arbeitsmappe voller =[Budget.xlsx]Sheet1!A1 nervt jeden Empfänger mit einer Aktualisierungsabfrage. Frieren Sie diese Zellen ein, und die Datei trägt ihre Zahlen ohne Verknüpfungen, denen sie hinterherjagen müsste.

Alle drei sind dieselbe Operation mit unterschiedlicher Absicht, und alle drei sind unsicher, wenn Sie die Quelle zuerst löschen — erst einfrieren, dann entfernen.

Die Abkürzung ohne Zwischenablage: dst.Value = src.Value

Wenn Sie nur Werte wollen — keine Formate, keine Operation, keine Transposition —, brauchen Sie die Zwischenablage überhaupt nicht. Das .Value eines Bereichs einem anderen zuzuweisen schreibt die Zahlen direkt hinüber:

dst.Value = src.Value       ' nur Werte, sofort, beruehrt die Zwischenablage nie

Das ist der schnellste Weg, an Ort und Stelle einzufrieren — rng.Value = rng.Value überschreibt die Formeln eines Bereichs mit ihren eigenen Ergebnissen in einer Zeile — und es umgeht jeden Zwischenablage-Fehlermodus aus PasteSpecial. Die einzige Einschränkung: Es bewegt nur Werte, keine Zahlenformate — nutzen Sie also PasteSpecial Paste:=xlPasteValuesAndNumberFormats, wenn die Anzeige erhalten bleiben muss, und sehen Sie sich Copy Destination für das vollständige Bild des Kopierens ohne Zwischenablage an.

Wann Sie nicht einfrieren sollten

Einfrieren ist destruktiv — Sie werfen eine Formel weg. Tun Sie das nicht bei einer Zelle, deren Zahl weiterhin ihre Eingaben verfolgen soll: eine laufende Summe, eine verknüpfte Zusammenfassung, ein Modell, dessen ganzer Sinn darin besteht, bei geänderten Annahmen neu zu rechnen. Frieren Sie diese ein, ändert der nächste Leser eine Eingabe, und die „Summe" bewegt sich still nicht mehr mit — schlimmer als jede Verzögerung durch Neuberechnung. Frieren Sie ein Ergebnis, das endgültig ist; lassen Sie eine Formel, die noch arbeitet. Im Zweifel frieren Sie eine Kopie auf einem Schnappschussblatt ein und lassen die aktiven Formeln, wo sie sind.

Wie ExcelMaster hilft

Werte einfügen ist eine Ein-Zeilen-Idee mit zwei Wegen, Daten zu verlieren: Frieren Sie nach dem Löschen der Quelle ein, bekommen Sie #REF!; nutzen Sie das nackte xlPasteValues auf Datumswerten, verschicken Sie eine Spalte voller 45000en. Beides kompiliert, beides läuft, und beides sieht gut aus, bis es zu spät ist, es zu beheben.

ExcelMaster lässt Sie sagen, was Sie meinen — „friere die Zahlen dieses Monats ein", „wandle diese Formeln in Werte um, aber behalte die Datumswerte", „kappe die Verknüpfungen, bevor ich es verschicke" — und ordnet die Schritte sicher (zuerst einfrieren, dann löschen), wählt xlPasteValuesAndNumberFormats, wenn ein Mensch das Ergebnis liest, und nutzt dst.Value = src.Value, wenn die Zwischenablage nicht gebraucht wird. Sie behalten die Arbeitsmappe und den Code.

Häufig gestellte Fragen

Wie wandle ich Formeln in VBA in Werte um?

Frieren Sie sie an Ort und Stelle ein: rng.Value = rng.Value überschreibt jede Formel mit der Zahl, die sie gerade liefert, in einer Zeile und ohne Zwischenablage. Müssen Sie das Anzeigeformat bei Datumswerten oder Währungen behalten, nutzen Sie stattdessen die Zwischenablage-Variante — rng.Copy, dann rng.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, gefolgt von Application.CutCopyMode = False.

Warum wurden meine Datumswerte nach dem Einfügen von Werten zu Zahlen?

Weil xlPasteValues den Wert ohne das Zahlenformat einfügt, und der zugrunde liegende Wert eines Datums eine Seriennummer wie 45000 ist. Das Format war das, was ihn als Datum angezeigt hat. Nutzen Sie xlPasteValuesAndNumberFormats, damit das Anzeigeformat mit übertragen wird und die Datumswerte Datumswerte bleiben.

Wie stoppe ich eine Formel bei der Neuberechnung, ohne sie zu löschen?

Ersetzen Sie sie durch ihr Ergebnis — Werte einfügen. Kopieren Sie die Zellen und nutzen Sie PasteSpecial Paste:=xlPasteValuesAndNumberFormats, oder verwenden Sie rng.Value = rng.Value. Das ist die übliche Lösung für volatile Formeln wie NOW(), RAND() und OFFSET(), die sich bei jeder Bearbeitung ändern: Einmal eingefroren, steht die Zahl fest.

Zerstört das Einfügen von Werten meine Formeln, wenn ich das Quellblatt lösche?

Es verhindert genau das — solange Sie zuerst einfrieren. Wenn eine Formel auf ein anderes Blatt verweist und Sie dieses Blatt löschen, wird die Formel zu #REF!, und die Zahl ist verloren. Fügen Sie die Werte vor dem Löschen ein, damit die Zelle eine echte Zahl enthält, die nicht mehr von der Quelle abhängt.

Was ist der Unterschied zwischen .Value und .Value2 beim Einfrieren?

.Value gibt Datumswerte und Währungen als ihre formatierten Typen zurück, während .Value2 die rohe zugrunde liegende Zahl liefert (ein Datum als seine Seriennummer). Für ein einfaches Einfrieren reicht rng.Value = rng.Value; nutzen Sie .Value2 nur, wenn Sie gezielt die rohen Seriennummern wollen, ohne Währungs- oder Datumstypisierung — den Unterschied erklärt VBA Value2.

Getestet in

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

Weiterführende Anleitungen: VBA PasteSpecial · VBA Copy Destination · VBA Kopieren und Einfügen · VBA Formula · VBA Value2