VBA-Fehler 1004 – Anwendungs- oder objektdefinierter Fehler

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 23, 2022

In diesem Tutorial wird der VBA-Fehler 1004 (Anwendungs- oder objektdefinierter Fehler) erklärt.

Der VBA-Laufzeitfehler 1004 ist als anwendungs- oder objektdefinierter Fehler, der während der Ausführung des Codes auftritt, bekannt. Beim Erlernen von VBA ist es unvermeidlich, Fehler zu machen (siehe unseren Leitfaden zur Fehlerbehandlung). Wenn Sie jedoch wissen, warum ein Fehler auftritt, können Sie ihn in der Zukunft bei der Programmierung vermeiden.

VBA-Fehler 1004 – Objekt existiert nicht

Wenn wir in unserem Code auf ein Objekt wie z. B. einen Bereichsnamen, der nicht definiert wurde, verweisen, kann dieser Fehler auftreten, da der VBA-Code den Namen nicht finden kann.

Sub BereichKopieren()
  Dim KopierenVon As Range
  Dim KopierenNach As Range
  Set KopierenVon = Sheets(1).Range("KopierenVon")
  Set KopierenNach = Sheets(1).Range("KopierenNach")
  KopierenVon.Copy
KopierenNach.PasteSpecial xlPasteValues
End Sub

Im obigen Beispiel werden die Werte aus dem benannten Bereich „KopierenVon“ in den benannten Bereich „KopierenNach“ kopiert, aber natürlich unter der Voraussetzung, dass es sich um existierende benannte Bereiche handelt! Wenn sie nicht existieren, wird der Fehler 1004 angezeigt.

fehler 1004 anwendungs oder objektdefiniert

Der einfachste Weg, diesen Fehler im obigen Beispiel zu vermeiden, besteht darin, die Bereichsnamen in der Excel-Arbeitsmappe zu erstellen oder auf den Bereich im traditionellen Zeilen- und Spaltenformat wie  z. B. Range(„A1:A10“) zu verweisen.

VBA-Fehler 1004 – Name bereits vergeben

Der Fehler kann auch auftreten, wenn wir versuchen, ein Objekt in ein bereits vorhandenes Objekt umzubenennen. Zum Beispiel, wenn wir versuchen, Tabelle1 umzubenennen, und zwar mit einem Namen, den ein anderes Blatt bereits hat.

Sub ArbeitsblattBenennen()
  ActiveSheet.Name = "Tabelle2"
End Sub

Wenn Tabelle2 bereits existiert, wird der Fehler auftreten.

fehler 1004 name existiert bereits

 

VBA-Fehler 1004 – Falscher Verweis auf ein Objekt

Der Fehler kann auch auftreten, wenn Sie auf ein Objekt in Ihrem Code falsch verwiesen haben. Zum Beispiel:

Sub BereichKopieren()
  Dim KopierenVon As Range
  Dim KopierenNach As Range
  Set KopierenVon = Range("A1:A10")
  Set KopierenNach = Range("C1:C10")
  Range(KopierenVon).Copy
  Range(KopierenNach).PasteSpecial xlPasteValues
End Sub

Auch in diesem Fall wird der Fehler 1004 angezeigt.

fehler 1004 anwendungs oder objektdefiniert

Korrigieren Sie den Code und der Fehler wird nicht mehr angezeigt.

Sub CopyRange()
  Dim CopyFrom As Range
  Dim CopyTo As Range
  Set CopyFrom = Range("A1:A10")
  Set CopyTo = Range("C1:C10")
  CopyFrom.Copy
  CopyTo.PasteSpecial xlPasteValues
End Sub

VBA-Fehler 1004 – Objekt nicht gefunden

Dieser Fehler kann auch auftreten, wenn Sie versuchen, eine Arbeitsmappe zu öffnen und diese nicht gefunden wird. Die Arbeitsmappe ist in diesem Fall das Objekt, das nicht gefunden wird.

Sub DateiOeffnen()
 Dim wb As Workbook
 Set wb = Workbooks.Open("C:\Data\Testdatei.xlsx")
End Sub

Obwohl die Meldung im Fehlerfenster anders lautet, ist der Fehler immer noch 1004.

fehler 1004 objekt nicht gefunden

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples