Laufzeitfehler 1004: PasteSpecial-Methode der Range-Klasse fehlgeschlagen

  • Teile Das
Hugh West

Eines der häufigsten Probleme, auf die wir bei der Arbeit mit Kopieren und Einfügen in VBA ist die Laufzeitfehler 1004 : PasteSpecial-Methode der Range-Klasse fehlgeschlagen In diesem Artikel zeige ich Ihnen, was die möglichen Gründe für diesen Fehler sind und wie Sie ihn beheben können, mit entsprechenden Beispielen und Illustrationen.

Download Arbeitsbuch Praxis

Laden Sie dieses Übungsheft herunter, um zu üben, während Sie diesen Artikel lesen.

PasteSpecial Methode fehlgeschlagen.xlsm

PasteSpecial-Methode der Range-Klasse fehlgeschlagen: Ursachen und Lösungen

Lassen Sie uns ohne weitere Verzögerung zu unserer Hauptdiskussion übergehen, d. h. zu der Frage, was die möglichen Gründe für diesen Fehler sein könnten und wie man sie beheben kann.

Grund 1: Zugriff auf die PasteSpecial-Methode, ohne etwas zu kopieren

Dies ist die häufigste Ursache für den Fehler, d.h. der Versuch, auf die EinfügenSpezial Methode, ohne etwas zu kopieren.

Zum besseren Verständnis sollten Sie folgende Punkte prüfen VBA Code.

⧭ VBA-Code:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Hier haben wir die EinfügenSpezial Methode der VBA ohne etwas zu kopieren. Excel zeigt also eine Laufzeitfehler 1004 wenn Sie es ausführen.

⧭ Lösung:

Um dieses Problem zu lösen, müssen Sie zunächst einen Bereich von Zellen kopieren und dann auf die EinfügenSpezial Methode.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Wenn Sie diesen Code ausführen, werden die Formeln des Bereichs eingefügt B3:B5 des aktiven Arbeitsblatts auf den ausgewählten Bereich.

Lesen Sie mehr: PasteSpecial-Methode der Arbeitsblattklasse fehlgeschlagen (Gründe & Lösungen)

Grund 2: Zugriff auf die Methode PasteSpecial mit Rechtschreibfehler

Dies ist eine weitere häufige Ursache für den Fehler, d.h. um auf die EinfügenSpezial Methode mit Rechtschreibfehler(n) in einem der Argumente.

Sehen Sie sich Folgendes an VBA Hier haben wir einen Rechtschreibfehler in dem Argument xlPasteAll .

⧭ VBA-Code:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlPaseAll End Sub 

Wenn Sie diesen Code ausführen, erhalten Sie die Laufzeitfehler 1004 .

⧭ Lösung:

Die Lösung ist einfach, das haben Sie sicher schon erraten. Achten Sie nur darauf, dass die Schreibweise aller Argumente richtig ist.

Der Fehler verschwindet dann automatisch.

Lesen Sie mehr: Verwendung des Befehls "Einfügen spezial" in Excel (5 geeignete Methoden)

Ähnliche Lektüre

  • Excel VBA: Bereich in eine andere Arbeitsmappe kopieren
  • Kopieren und Einfügen von Werten in die nächste leere Zeile mit Excel VBA (3 Beispiele)
  • VBA PasteSpecial anwenden und Quellformatierung in Excel beibehalten
  • Kopieren desselben Wertes in mehrere Zellen in Excel (4 Methoden)
  • Excel VBA zum Kopieren von Zeilen in ein anderes Arbeitsblatt anhand von Kriterien

Grund 3: Öffnen einer neuen Arbeitsmappe nach dem Kopieren, das den Kopieren/Einfügen-Modus aufhebt

Dies ist ein weiterer wichtiger Grund für den Fehler, nämlich etwas zu tun, das den Kopieren/Einfügen-Modus vor dem Einfügen aufhebt.

Sehen Sie sich zum besseren Verständnis den folgenden Code an.

⧭ VBA-Code:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Workbooks("Workbook1.xlsx").Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbook2.Activate Workbook2.Unprotect Workbook2.Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAllEnd Sub 

Hier haben wir den Bereich kopiert B3:B5 von der Blatt1 einer Arbeitsmappe namens Arbeitsbuch1 .

Dann haben wir eine neue Arbeitsmappe mit dem Namen Arbeitsbuch2 im gleichen Ordner und versuchte, den kopierten Bereich in den Bereich B3:B5 von Blatt1 dieser Arbeitsmappe.

Aber wenn wir den Code ausführen, zeigt er eine PasteSpecial-Methode der Range-Klasse fehlgeschlagen Fehler, denn in dem Moment, in dem wir die neue Arbeitsmappe erstellen, wird die Kopieren/Einfügen-Modus wird annulliert.

⧭ Lösung:

Um dieses Problem zu lösen, schreiben Sie zunächst die Codezeilen auf, um die neue Arbeitsmappe namens Arbeitsbuch2 .

Fügen Sie dann die Zeilen zum Aktivieren ein Arbeitsbuch1 und kopieren Sie den gewünschten Bereich daraus.

Und schließlich, aktivieren Sie Arbeitsbuch2 und fügen Sie den kopierten Bereich dort ein.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbooks("Workbook1.xlsx").Activate Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Workbook2.Activate Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAll End Sub 

Führen Sie diesen Code aus, er kopiert den Bereich B3:B5 von Blatt1 von Arbeitsheft1.

Und fügen Sie es ein in Blatt1 der neu erstellten Arbeitsmappe namens Arbeitsbuch2 .

⧭ Vorsichtsmaßnahmen:

Vergessen Sie natürlich nicht, die Arbeitsbuch1 während der Ausführung des Codes geöffnet.

Lesen Sie mehr: Kopieren und Einfügen in Excel ohne Makros deaktivieren (mit 2 Kriterien)

Grund 4: Wenn Application.CutCopyMode auf False gesetzt wird, wird der Kopier-/Einfügemodus aufgehoben

Schließlich kann der Fehler auch aus einem anderen Grund auftreten: Wir können die Anwendung.CutCopyMode fälschlicherweise vor dem Zugriff auf die EinfügenSpezial Methode.

Obwohl dies nicht sehr häufig vorkommt, machen wir es doch manchmal, wenn wir mit einer großen Anzahl von Zeilen arbeiten müssen.

Der folgende Code macht dies deutlich. Hier haben wir den Bereich kopiert B3:B5 aber stornierte die CutCopyMode bevor sie eingefügt wird.

⧭ VBA-Code:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Application.CutCopyMode = False Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Wenn Sie den Code ausführen, zeigt er die PasteSpecial-Methode der Range-Klasse fehlgeschlagen Fehler.

⧭ Lösung:

Ich vermute, dass Sie inzwischen alle die Lösung erraten haben. Es ist eigentlich ganz einfach. Entfernen Sie einfach die Zeile aus dem Code, die aus dem CutCopy Modus aus.

Das heißt, die richtige VBA Code sein wird:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Es kopiert den Bereich B3:B5 und fügen Sie es über die D3:D5 ohne jegliche Schwierigkeiten.

Lesen Sie mehr: VBA Einfüge-Spezial zum Kopieren von Werten und Formaten in Excel (9 Beispiele)

Dinge zum Merken

Hier habe ich nur die Probleme aufgezeigt, die bei der Arbeit mit dem EinfügenSpezial Methode in VBA. Wenn Sie wissen wollen, welche EinfügenSpezial Methode im Detail zu erfahren, besuchen Sie dieser Link .

Schlussfolgerung

Kurzum, dies sind die Gründe, die zu einer Laufzeitfehler 1004: PasteSpecial-Methode der Range-Klasse fehlgeschlagen Ich hoffe, Sie haben alle Punkte verstanden und diese werden Ihnen in Zukunft sehr helfen. Kennen Sie noch andere Gründe? Und haben Sie Probleme? Fragen Sie uns. Und vergessen Sie nicht, unsere Website zu besuchen ExcelWIKI für weitere Beiträge und Aktualisierungen.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.