Laufzeitfehler ‚1004‘
Der VBA-Laufzeitfehler 1004 tritt auf, während Sie ein Makro in Excel ausführen. Es ist ein Fehler, der aus mehreren Gründen auftreten kann. Wie Sie in den folgenden Beispielen sehen können, wird beim Ausführen des Codes der Laufzeitfehler „1004“ angezeigt. In einfachen Worten kann man auch sagen, dass es auftritt, wenn Sie mit dem Objekt oder der Anwendung keine Aktivität ausführen können.
Was verursacht den Fehler?
Im Nachfolgenden geben wir Ihnen eine Übersicht über die möglichen Ursachen der VBA-Laufzeitfehler 1004
Ursache 1: VBA-Code bezieht sich auf einen Bereich, der nicht existiert
Dieser Code tritt normalerweise auf, wenn VBA-Code auf eine Zelle oder einen Bereich verweist, der nicht vorhanden ist. Dieser Code ist beispielsweise richtig.
Sub test()
Set Rng = Worksheets("Tabelle1").Range("A1")
Set Rng2 = Worksheets("Tabelle1").Range("AA2")
End Sub
Wenn Sie jedoch versuchen, auf die folgenden Bereiche zuzugreifen, gibt das Programm in beiden Fällen einen Fehler zurück.
Sub test()
Set Rng = Worksheets("Tabelle1").Range("AAAA1")
Set Rng2 = Worksheets("Tabelle1").Range("BlaBlaBla")
End Sub
Die erste Zeile hat den Fehler 1004 zurückgegeben, da Excel nur 16.384 Spalten enthält und die letzte Spalte XFD ist.
Im zweiten Fall existiert der Range „BlaBlaBla“ nicht. In diesem Fall gibt die Anwendung den Fehler ebenfalls zurück. Besondere Vorsicht ist bei Schleifen geboten, da Sie damit ausversehen den Bereich verlassen können, ohne es zu merken.
Ursache 2: Wir konnten Dateien nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?
Dieser Fehler kann auch auftreten, wenn wir versuchen, eine Arbeitsmappe zu öffnen und die Arbeitsmappe nicht gefunden wird – die Arbeitsmappe ist in diesem Fall das Objekt, das nicht gefunden wird.
Sub OpenFile()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\\Data\\Test-Datei.xlsx")
End Sub
Der Fehler ist weiterhin 1004 nur der Text ist anders.
Ursache 3: Der Name wird bereits verwendet. Verwenden Sie einen anderen
Der Fehler kann auch auftreten, wenn Sie versuchen, ein Objekt in ein bereits vorhandenes Objekt umzubenennen – zum Beispiel, wenn wir versuchen, Blatt1 umzubenennen, aber der Name, den Sie dem Blatt geben, bereits der Name eines anderen Blatts ist.
Sub NameWorksheet()
ActiveSheet.Name = "Tabelle2"
End Sub
Ursache 4: Das angegebene Objekt kann nicht gefunden werden
Wenn Sie im Code auf ein Blatt verweisen, welches nicht existiert, dann erhalten Sie die Fehlermeldung: „Das angegebene Objekt konnte nicht gefunden werden.“.
Sub Error1004_Example()
Worksheets("SheetAA1").Range("A1:A5").Activate
End Sub
Ursache 5: Die Activate-Methode des Range-Objektes konnte nicht ausgeführt werden.
Diese Fehlermeldung erscheint, wenn bspw. das Tabellenblatt „Tabelle1“ selektiert ist, im Code aber ein Bereich aus dem Tabellenblatt „Tabelle2“ aktiviert werden soll. Um dies zu lösen, muss zuerst das korrekte Blatt aktiviert werden.
Sub Error1004_Example()
Worksheets("Tabelle2").Range("A1:A5").Activate
End Sub
Benötigen Sie einen VBA Programmierer?
Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.