Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verweis ist inaktiv obwohl er gesetzt ist

Forumthread: Verweis ist inaktiv obwohl er gesetzt ist

Verweis ist inaktiv obwohl er gesetzt ist
09.05.2019 23:09:18
Marc
Hallo liebe Forumsgemeinde,
nach zwei Wochen hatte ich heute an einem Makro weitergearbeitet, dass mit dem MicrosoftXML6.0 Verweis arbeitet. Ich hatte das Makro zuletzt mit aktivem Verweis gespeichert und wie ich das Makro heute wieder laufen ließ funktionierte es plötzlich nicht mehr aber es kam auch keine Fehlermeldung wie es üblich wäre wenn ich versuchen würde Methoden aufzurufen ohne, dass der Verweis aktiviert wäre.
Nachdem ich die Fehlerursache eingegrenzt hatte habe ich einfach den Verweis mal kurz deaktiviert, dann wieder aktiviert, nochmal abgespeichert und siehe da, plötzlich lief das Makro wieder.
Wie kann es sein, dass ein aktiver Verweis nicht reagiert? Weiß jemand was die Ursache sein könnte?
VG,
Marc
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verweis ist inaktiv obwohl er gesetzt ist
10.05.2019 06:49:39
Luschi
Hallo Marc,
ich hoffe, Du hast die Objektvariable bei 'Early Binding' nicht so definiert:
Dim xmlHttp As New MSXML2.XMLHTTP60
sondern so:
Dim xmlHttp As MSXML2.XMLHTTP60
Set xmlHttp = New MSXML2.XMLHTTP60
Ich benutze aber lieber 'Late Binding':
Dim xmlHttp As Object
Set xmlHttp = CreateObject("MSXML2.XMLHTTP60")
Gruß von Luschi
aus klein-Paris
PS: die Variante mit Dim und New in einer Zeile macht macht manchmal Probleme.
Anzeige
AW: Verweis ist inaktiv obwohl er gesetzt ist
10.05.2019 22:57:16
Marc
Hallo Luschi,
ich hatte es mit der von Dir an zweiter Stelle genannten Variante programmiert:
Dim xmlDoc As DOMDocument60
Set xmlDoc = New MSXML2.DOMDocument60
Bislang war ich einfach zu faul mich mal mit Late-Binding zu befassen aber in diesem Fall hätte es mir wohl den Ärger erspart. Künftig werde ich Late-Binding vorziehen wenn es geht.
Mir ist allerdings gar nicht bewusst welche Art von Objekt Du mit Deinem Late-Binding Beispiel erzeugt hast. Ist das ein XML-Document Objekt?
Grüße aus Heddernheim,
Marc
Anzeige
AW: Verweis ist inaktiv obwohl er gesetzt ist
11.05.2019 16:32:30
Marc
Hallo Luschi,
ich hab jetzt mal versucht das XML-Document über Late-Binding zu erstellen aber ich bekomme die Fehlermeldung "Objekterstellung durch ActiveX-Komponente nicht möglich!"
Folgendermaßen bin ich vorgegangen:
Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument60")
Meine Recherche hat ergeben, dass ich wohl einen ActiveX-Verweis aktivieren muss, allerdings weiß ich nicht welchen von den zig ActiveX Verweisen, die gelistet werden. Außerdem dachte ich, dass ich nun Dank Late-Binding ohne Verweis auskomme, aber so hätte ich nur den MicrosoftXML6.0 Verweis gegen einen ActiveX Verweis getauscht.
Was mache ich falsch? =)
Anzeige
AW: Verweis ist inaktiv obwohl er gesetzt ist
12.05.2019 15:34:59
Marc
Ich habe die Lösung nun bei Stack Overflow gefunden. Folgendermaßen erstelle ich also nun das XML-Document via Late-Binding, ohne einen verweis auf XML6.0:
Dim xmlDoc As Object
Set xmlDoc = CreateObject("Microsoft.XMLDom")
Allerdings verstehe ich nicht ganz wie der Aufruf funktioniert denn im Objektkatalog existiert keine Klasse mit diesem Namen. Wie genau funktioniert das im Falle von Late-Binding?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verweis ist inaktiv obwohl er gesetzt ist


Schritt-für-Schritt-Anleitung

Wenn Du mit Excel VBA und dem MicrosoftXML6.0 Verweis arbeitest, kann es vorkommen, dass Du auf das Problem stößt, dass der Verweis als aktiv angezeigt wird, aber nicht funktioniert. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du das Problem beheben kannst:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Gehe zu Extras > Verweise.
  3. Überprüfe die aktiven Verweise und stelle sicher, dass "Microsoft XML, v6.0" aktiviert ist.
  4. Deaktiviere den Verweis und aktiviere ihn erneut.
  5. Speichere das Projekt und teste das Makro erneut.

Diese Schritte haben in vielen Fällen geholfen, das Problem zu lösen.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der bei der Arbeit mit xmlhttp60 oder msxml2.xmlhttp auftreten kann, ist die falsche Deklaration von Objektvariablen. Hier sind einige Probleme und deren Lösungen:

  • Fehlerhafte Deklaration:

    Dim xmlHttp As New MSXML2.XMLHTTP60

    Lösung: Verwende stattdessen:

    Dim xmlHttp As MSXML2.XMLHTTP60
    Set xmlHttp = New MSXML2.XMLHTTP60
  • ActiveX-Komponente nicht möglich: Wenn Du versuchst, ein XML-Dokument mit CreateObject("MSXML2.DOMDocument60") zu erstellen und eine Fehlermeldung erhältst, könnte es daran liegen, dass der erforderliche ActiveX-Verweis nicht aktiviert ist.


Alternative Methoden

Eine alternative Methode zur Erstellung von XML-Objekten in Excel VBA ist das Late Binding. Hierbei musst Du keinen spezifischen Verweis setzen. Stattdessen kannst Du CreateObject verwenden:

Dim xmlDoc As Object
Set xmlDoc = CreateObject("Microsoft.XMLDom")

Diese Methode hat den Vorteil, dass sie flexibler ist und weniger Probleme mit verschiedenen Excel-Versionen verursacht.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, xmlhttp in Excel VBA richtig zu verwenden:

  • Ein einfaches GET-Request:

    Dim xmlHttp As Object
    Set xmlHttp = CreateObject("MSXML2.XMLHTTP60")
    xmlHttp.Open "GET", "http://example.com", False
    xmlHttp.Send
    MsgBox xmlHttp.responseText
  • Arbeiten mit DOM-Dokumenten:

    Dim xmlDoc As Object
    Set xmlDoc = CreateObject("MSXML2.DOMDocument60")
    xmlDoc.async = False
    xmlDoc.Load "http://example.com/data.xml"
    MsgBox xmlDoc.DocumentElement.nodeName

Diese Beispiele zeigen, wie Du die msxml2.xmlhttp und msxml2.domdocument60 Objekte effektiv nutzen kannst.


Tipps für Profis

  • Verwende Late Binding: Es ist oft besser, Late Binding zu verwenden, um Probleme mit den Verweisen zu vermeiden. Dies macht Deinen Code robuster gegenüber Änderungen in verschiedenen Excel-Versionen.

  • Debugging: Wenn Du auf Probleme stößt, füge Debugging-Statements hinzu, um die Werte von Variablen zu überprüfen. Zum Beispiel:

    Debug.Print xmlHttp.Status
  • Dokumentation: Informiere Dich über die verschiedenen Methoden und Eigenschaften der msxml2-Bibliotheken, um das Beste aus Deinen XML-Anfragen herauszuholen.


FAQ: Häufige Fragen

1. Warum funktioniert mein Verweis auf msxml2.xmlhttp nicht? Es kann sein, dass der Verweis zwar aktiviert ist, aber aus verschiedenen Gründen nicht reagiert. Versuche, den Verweis zu deaktivieren und wieder zu aktivieren.

2. Was ist der Unterschied zwischen Early Binding und Late Binding? Early Binding erfordert, dass Du den Verweis im Projekt explizit aktivierst, während Late Binding dies nicht benötigt und mehr Flexibilität bietet.

3. Wie kann ich ein XML-Dokument ohne Verweis erstellen? Du kannst ein XML-Dokument mit Late Binding erstellen, indem Du CreateObject("Microsoft.XMLDom") verwendest.

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