VBA-Fehler 1004 – Anwendungs- oder objektdefinierter Fehler
In this Article
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.
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.
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.
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.