2012-06-28 11 views
23

próbuję zaimportować dane XML do programu Excel .. więc pierwsza linia kodu jestDeklarowanie wcześnie związany obiekt MSXML zgłasza błąd w VBA

Dim XMLDOC As MSXML2.DOMDocument

a to daje błąd „zdefiniowane przez użytkownika typu nie zdefiniowano”

+1

Oprócz tego, co zasugerował [Scott] (http://stackoverflow.com/a/11245915/190829), można: Dim ... As Object' i unikaj problemu wczesnego wiązania. – JimmyPena

+0

Proszę zaznaczyć odpowiedź Scotta Holtzmana jako właściwą. –

Odpowiedz

28

Wewnątrz VBE, przejdź do Narzędzia -.> Referencje, a następnie wybierz Microsoft XML, v6.0 (lub cokolwiek jest Twój ostatni to da Ci dostęp do biblioteki XML Object

aktualizowana. z wentylatorem cy pic!

enter image description here

+1

Dziękujemy! To doprowadzało mnie do szału. I fantazyjny pic pieczętuje umowę. – RossC

+0

Cholera nadal przy użyciu Windows XP: | – user734028

+7

Na marginesie, jeśli korzystasz z systemu Windows 8, może być konieczne odwołanie się do Microsoft XML v3, ponieważ v6 nie ujawnia klasy DOMDocument. Zobacz wątek http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

miałem DOMDocument zdefiniowany które potrzebne Microsoft XML, v3.0 ale miałem Microsoft XML, v6.0 wybrany w odnośnikach, które spowodowały poniżej błąd

„typ zdefiniowany przez użytkownika nie określono”.

Roztwór

Roztwór albo zmienić DOMDocument do DOMDocument60 (60 zastosowania wersja 6,0) lub poprzez odnośnik Microsoft XML, v3.0 z DomDocument.

+0

Stwierdziłem, że za każdym razem, gdy użytkownicy musieli ponownie uruchamiać Excel, jeśli w Windows10 użyto 'DOMDocument', wybrany plik MS XML, v3.0 powróciłby do wersji 6.0. Lepszą trasą jest użycie 'DOMDocument60' IMHO. – CarloC

0

Używam makra VBA Excel, które napisał ktoś inny, a ja miałem zadanie go naprawić po aktualizacji z Windows 7/Office 2010 do Windows 10/Office 2016. Zacząłem otrzymywać ten sam "zdefiniowany przez użytkownika typ nie zdefiniowany "skompiluj błąd. Moja poprzednia instalacja miała również MS XML v6.0, ale najwyraźniej musisz konkretnie wskazać tę wersję w swoim kodzie na Windows 10 i/lub Office 2016 (nie byłem w stanie potwierdzić, która aktualizacja spowodowała problem). Udało mi się rozwiązać problem, wykonując wyszukiwanie/wymienianie następujących elementów:

"DOMDocument" to "MSXML2.DOMDocument60" 
"XMLHTTP" to "MSXML2.XMLHTTP60" 
Powiązane problemy