Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nicht vorhandene Verweise

Nicht vorhandene Verweise
30.04.2020 13:21:47
Woppi
Hallo,
hat einer einen Tipp für mich?
Ich schriebe Makros die auf verschiedene Rechner in unserer Firma installiert werden.
Und es gibt jetzt Probleme mit dem Verweisen auf VBAProjekte, wenn die Datein nicht auf den anderen Rechner vorhanden sind, bzw die Software dort auch nicht installiert sein soll.
Ich habe auch schon etwas darüber im Netz gefunden:
https://support.microsoft.com/de-de/help/308340/how-to-check-and-remove-incorrect-project-references-in-the-visual-bas
aber bei allen Code Beispielen die ich gefunden habe,
bekomme ich direkt am Anfang eine Fehlermeldung: (an der "fetten" Zeile, unten im Code)
Benutzerdefinierter Typ nicht definiert

Sub CheckReference()
'Prüft ob es Verweise auf Bibliotheken gibt, die nicht vorhanden sind, und gibt den Namen im  _
Direktfenster aus
DimvbProj As VBProject ' This refers to your VBA project.
Dim chkRef As Reference ' A reference.
' Refer to the activedocument's VBA project.
Set vbProj = ActiveDocument.VBProject
' Check through the selected references in the References dialog box.
For Each chkRef In vbProj.References
' If the reference is broken, send the name to the Immediate Window.
If chkRef.IsBroken Then
Debug.Print chkRef.Name
End If
Next
End Sub

kann mir einer sagen was ich da Falsch mache?
Gruß Woppi
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nicht vorhandene Verweise
30.04.2020 13:59:49
Daniel
Hi
Wenn du mal die fette Programmzeile mit der direkt darunter liegenden vergleichst, die der darüberliegenden sehr ähnlich ist, sollte dir auf allen, dass in der Fetten das Leerzeichen zwischen der Anweisung "Dim" und dem Variablennamen fehlt, so dass das ganze ein Wort ist, welches der VBA-Editor nicht kennt.
Gruß Daniel
Anzeige
AW: Nicht vorhandene Verweise
04.05.2020 06:55:53
Woppi
Hallo Daniel,
vielen Dank für diene Antwort, aber das ist es leider nicht, sondern das fehlende Leerzeichnen ist mir in dem Code beim "fett" machen passiert.
der Code hängt an der Stelle: As VBProject.
Fehlt mir ein Verweis damit das funktioniert?
Ich finde auch kein VBProject im Objektkatalog (außer unter Excel \ Workbook) und das ist es nicht.
Gruß Woppi
Anzeige
;
Anzeige

Infobox / Tutorial

Nicht vorhandene Verweise in VBA-Projekten beheben


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Zugriff auf die Verweise: Klicke im Menü auf Extras und wähle Verweise.... Hier siehst du eine Liste aller installierten Bibliotheken.

  3. Überprüfen auf fehlende Verweise: Suche in der Liste nach Einträgen, die mit "Fehlend" oder "Missing" markiert sind. Diese Bibliotheken sind nicht verfügbar und führen zu Problemen.

  4. Fehlende Verweise entfernen: Entferne das Häkchen bei den fehlenden Verweisen und klicke auf OK, um die Änderungen zu speichern.

  5. Korrigiere den Code: Wenn du VBA-Projekte auf anderen Rechnern verwendest, stelle sicher, dass alle benötigten Bibliotheken auch installiert sind. Andernfalls musst du Deinen Code so anpassen, dass er ohne diese Verweise funktioniert.


Häufige Fehler und Lösungen

  • Benutzerdefinierter Typ nicht definiert: Dieser Fehler tritt häufig auf, wenn ein Verweis nicht korrekt gesetzt ist. Stelle sicher, dass alle benötigten Bibliotheken vorhanden sind.

  • Falsche Schreibweise: Achte darauf, dass alle Variablen korrekt deklariert sind. Ein fehlendes Leerzeichen kann zu Kompilierungsfehlern führen, wie im Beispiel von Woppi.


Alternative Methoden

  • Verwendung von Late Binding: Statt direkte Verweise auf Bibliotheken zu setzen, kannst du Late Binding verwenden. Hierbei wird die Bibliothek zur Laufzeit geladen, was die Kompatibilität zwischen verschiedenen Rechnern verbessert. Beispiel:
Dim obj As Object
Set obj = CreateObject("Excel.Application")
  • Modularer Code: Schreibe Deinen Code modular, sodass er ohne spezifische Verweise funktioniert. So kannst du die Abhängigkeiten minimieren.

Praktische Beispiele

Hier ist ein Beispielcode, der zeigt, wie Du einen fehlenden Verweis umgehen kannst:

Sub CheckReference()
    Dim vbProj As Object ' Verwende Late Binding
    Dim chkRef As Object ' Verwendung von Object anstelle von Reference
    Set vbProj = ActiveWorkbook.VBProject
    For Each chkRef In vbProj.References
        If chkRef.IsBroken Then
            Debug.Print chkRef.Name
        End If
    Next
End Sub

Diese Anpassung hilft Dir, den Fehler "Benutzerdefinierter Typ nicht definiert" zu vermeiden.


Tipps für Profis

  • Regelmäßige Überprüfung der Verweise: Mache es dir zur Gewohnheit, die Verweise regelmäßig zu überprüfen, besonders wenn Du auf verschiedenen Rechnern arbeitest.

  • Dokumentation: Halte eine Liste aller verwendeten Bibliotheken und deren Versionen für Dein Projekt bereit. Dies erleichtert die Fehlersuche, wenn Du auf Probleme stößt.


FAQ: Häufige Fragen

1. Was ist ein fehlender Verweis in VBA?
Ein fehlender Verweis bedeutet, dass eine benötigte Bibliothek nicht vorhanden ist oder nicht richtig verlinkt wurde. Dies kann zu Fehlern im Code führen.

2. Wie finde ich heraus, welche Verweise ich benötige?
Du kannst die benötigten Verweise in der Dokumentation der verwendeten Bibliotheken nachlesen oder in einem funktionierenden Code nachsehen, welche Verweise gesetzt sind.

3. Was kann ich tun, wenn ein Verweis nicht installiert ist?
Du kannst entweder die benötigte Software installieren, die den Verweis bereitstellt, oder Deinen Code anpassen, um ohne diesen Verweis zu funktionieren (z.B. durch Verwendung von Late Binding).

4. Gibt es eine Möglichkeit, alle Verweise auf einmal zu überprüfen?
Ja, du kannst ein Makro schreiben, das alle Verweise in Deinem VBA-Projekt durchläuft und deren Status prüft, wie im Beispiel oben gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige