Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ungültige Vorreferenz

Forumthread: Ungültige Vorreferenz

Ungültige Vorreferenz
09.09.2019 07:40:08
SteffenS77
Hallo Zusammen,
ich erhalten bei meinem Code

Sub test(art As Long, WS As Worksheet, aRange As Range)
'art 1=sichern, 2=restore
Dim WSs As Worksheet, aMap As String
aMap = Left(WS.Parent.Name, Len(WS.Parent.Name) - Len(xlf)) 'Mappenname ohne Endung
End Sub

die Meldung Automatisierungsfehler:
Ungültige Vorreferenz oder Rferenz zu unkompiliertem Typ.
Das Objekt wird nach meiner Meinung komplett übergeben und ein Test:
Msgbox(WS.Name) bringt auch das gewünschte Ergebnis.
Die Meldung hatte ich bisher noch nie und es hat alles funktioniert,
Die angegebene Mappe ist auch korrekt geladen
(Excel = Office 365 - 2016)
Habt ihr einen Tipp wo ich noch suchen kann?
VG SteffenS
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ungültige Vorreferenz
09.09.2019 08:35:24
ChrisL
Hi Steffen
Was den Fehler verursacht, kann ich auch nicht sagen. Aber ich würde mal unnötigen Ballast abwerfen (unnütze Variablen, xlf undefiniert..). Zudem macht es m.E. keinen Sinn, das Worksheet zu übergeben, wenn du eigentlich die Mappe brauchst.
Sub test(WB As Workbook)
Dim aMap As String
aMap = Left(WB.Name, InStrRev(WB.Name, ".") - 1)
MsgBox aMap
End Sub
cu
Chris
Anzeige
AW: Ungültige Vorreferenz
09.09.2019 18:45:33
SteffenS77
Hallo,
danke für die Antwort.
Ich habe das ganze jetzt nochmal unter Excel 2010 getestet und da funktioniert alles.
Habt ihr vielleicht noch einen Tipp für mich.
VG Steffen
AW: Ungültige Vorreferenz
09.09.2019 18:54:25
Hajo_Zi
Hallo Steffen
Du hast nicht geschrieben wozu.
Darum
Gehe Abends schlafen.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
;
Anzeige

Infobox / Tutorial

Ungültige Vorreferenz in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Code überprüfen: Suche nach dem entsprechenden Modul, in dem der Fehler auftritt.
  3. Variablen und Objekte: Stelle sicher, dass alle Variablen und Objekte korrekt definiert sind. Beispielsweise könnte der Fehler "Ungültige Vorreferenz oder Referenz zu unkompiliertem Typ" auftreten, wenn ein Objekt nicht korrekt initialisiert wurde.
  4. Unnötige Variablen entfernen: Schließe nicht benötigte Variablen aus dem Code aus, wie im Beispiel von ChrisL. Übergebe anstelle von Worksheet das Workbook, wenn du das Arbeitsbuch benötigst.
  5. Debugging: Füge MsgBox-Anweisungen hinzu, um den Status der Variablen zu überprüfen und den genauen Punkt des Fehlers zu identifizieren.
  6. Testen: Führe den Code erneut aus, um zu überprüfen, ob der Fehler weiterhin auftritt.

Häufige Fehler und Lösungen

  • Laufzeitfehler -2147319767 (80028029): Dieser Fehler tritt häufig auf, wenn ein Objekt nicht richtig referenziert wird. Überprüfe, ob alle Verweise auf externe Bibliotheken korrekt sind.

  • Automatisierungsfehler: Ungültige Vorreferenz: Achte darauf, dass alle Objekte, die du verwendest, auch tatsächlich existieren. Wenn du beispielsweise auf ein nicht existierendes Arbeitsblatt zugreifst, könnte dieser Fehler auftreten.

  • Ungültige Vorreferenz oder Referenz zu unkompiliertem Typ: Dieser Fehler kann auch auftreten, wenn eine Variable nicht korrekt deklariert oder initialisiert wurde.


Alternative Methoden

  • Objektbibliotheken überprüfen: Gehe zu Extras > Verweise im VBA-Editor und stelle sicher, dass alle benötigten Bibliotheken aktiviert sind. Ein fehlender Verweis kann zu einem automatisierungsfehler führen.

  • Code in einer anderen Excel-Version testen: Wie SteffenS77 festgestellt hat, kann der Code in Excel 2010 funktionieren, während er in Office 365 Fehler verursacht. Teste deinen Code in verschiedenen Versionen, um zu sehen, ob das Problem weiterhin besteht.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Code anpassen kannst:

Sub test(WB As Workbook)
    Dim aMap As String
    aMap = Left(WB.Name, InStrRev(WB.Name, ".") - 1)
    MsgBox aMap
End Sub

In diesem Beispiel wird das Arbeitsbuch (Workbook) übergeben, was den Fehler "VBA ungültige Vorreferenz oder Referenz" vermeiden kann.


Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler durch Tippfehler zu vermeiden.

  • Regelmäßige Code-Überprüfung: Führe regelmäßig Code-Reviews durch, um sicherzustellen, dass alles gut organisiert und fehlerfrei ist.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung in deinem Code, um den Grund für Fehler wie "automatisierungsfehler ungültige vorreferenz" besser nachzuvollziehen.


FAQ: Häufige Fragen

1. Was bedeutet der Fehler "Ungültige Vorreferenz"?
Dieser Fehler tritt auf, wenn eine Referenz auf ein Objekt nicht korrekt ist, oft wegen fehlender Bibliotheken oder falsch deklarierten Variablen.

2. Wie kann ich den Fehler -2147319767 (80028029) beheben?
Überprüfe, ob alle Objekte, die du verwendest, korrekt initialisiert sind und ob alle erforderlichen Verweise auf externe Bibliotheken aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige