2012-06-28 12 views
23

Ich versuche, XML-Daten in Excel zu importieren .. So die erste Zeile des Codes istDeklarieren früh gebunden MSXML Objekt einen Fehler in VBA wirft

Dim XMLDOC As MSXML2.DOMDocument

und das gibt einen Fehler „Benutzer definiert Typ nicht definiert“

+1

Zusätzlich zu dem, was [Scott] (http://stackoverflow.com/a/11245915/190829) vorgeschlagen, könnten Sie ' Dim ... Als Objekt "und vermeiden Sie das frühe Bindeproblem. – JimmyPena

+0

Bitte markieren Sie die Antwort von Scott Holtzman als die richtige. –

Antwort

28

im Inneren des VBE, gehen Sie zu Extras -.> Referenzen, dann Wählen Sie Microsoft XML, v6.0 (oder was auch immer Ihre neuesten Dieses wird Ihnen in die XML-Objektbibliothek zugreifen

aktualisiert. mit Ventilator Cy Bild!

enter image description here

+1

Vielen Dank! Das hat mich verrückt gemacht. Und das schicke Bild besiegelt den Deal. – RossC

+0

verdammt immer noch mit Windows XP: | – user734028

+7

Als Randnotiz müssen Sie unter Windows 8 möglicherweise auf Microsoft XML v3 verweisen, da v6 die DOMDocument-Klasse nicht verfügbar macht. Siehe http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

hatte ich DOMDocument definiert, die benötigt Microsoft XML, v3.0 aber ich hatte Microsoft XML, v6.0 in Referenzen ausgewählt, die die folgenden Fehler

„Benutzer definierten Typ nicht definiert“

verursacht.

Die Lösung

Die Lösung entweder zu DOMDocumentDOMDocument60 (60 verwendet ver 6.0) mit DomDocument oder verwenden, um die Referenz Microsoft XML, v3.0 war zu ändern.

+0

Ich stellte fest, dass Benutzer Excel immer neu starten mussten, wenn 'DOMDocument' in Windows10 verwendet wurde, würde MS XML, v3.0, auf v6.0 zurückgesetzt werden. Der bessere Weg ist die Verwendung von 'DOMDocument60' IMHO. – CarloC

0

Ich arbeite mit einem VBA-Excel-Makro, das jemand anderes geschrieben hat und ich wurde mit der Reparatur nach vor kurzem Aktualisierung von Windows 7/Office 2010 zu Windows 10/Office 2016 beauftragt. Ich fing an, den gleichen "benutzerdefinierten Typ nicht definiert zu erhalten "Fehler kompilieren. Meine vorherige Installation hatte auch MS XML v6.0, aber anscheinend müssen Sie in Ihrem Code auf Windows 10 und/oder Office 2016 ausdrücklich auf diese Version verweisen (ich konnte nicht bestätigen, welches Upgrade das Problem verursacht hat). Ich war in der Lage, das Problem zu lösen, indem eine Suche tun/Ersetzen auf dem folgende:

"DOMDocument" to "MSXML2.DOMDocument60" 
"XMLHTTP" to "MSXML2.XMLHTTP60"