2012-06-28 31 views
23

Tôi cố gắng để nhập dữ liệu xml vào excel .. Vì vậy, dòng đầu tiên của mã làTuyên bố đầu bị ràng buộc đối tượng MSXML ném một lỗi trong VBA

Dim XMLDOC As MSXML2.DOMDocument

và điều này mang lại một lỗi "người dùng định nghĩa gõ không được định nghĩa"

+1

Ngoài những gì [Scott] (http://stackoverflow.com/a/11245915/190829) đề xuất, bạn có thể ' Dim ... Như Object' và tránh vấn đề ràng buộc sớm. – JimmyPena

+0

Vui lòng đánh dấu câu trả lời của Scott Holtzman là câu trả lời đúng. –

Trả lời

28

Bên trong VBE, vào Tools -.> Tài liệu tham khảo, sau đó chọn Microsoft XML, v6.0 (hoặc bất kỳ mới nhất của bạn là Điều này sẽ cung cấp cho bạn truy cập vào Object XML Library

cập nhật. với quạt cy pic!

enter image description here

+1

Cảm ơn bạn! Điều này khiến tôi phát điên. Và bức ảnh ưa thích sẽ kết thúc thỏa thuận. – RossC

+0

damn vẫn sử dụng windows xp: | – user734028

+7

Như một lưu ý phụ, nếu bạn đang sử dụng Windows 8, bạn có thể cần tham khảo Microsoft XML v3 vì v6 không trưng ra lớp DOMDocument. Xem chủ đề http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

tôi đã DOMDocument định nghĩa mà cần Microsoft XML, v3.0 nhưng tôi đã Microsoft XML, v6.0 chọn trong tài liệu tham khảo mà gây ra lỗi dưới đây

"người dùng định nghĩa kiểu không xác định".

Giải pháp

Giải pháp là một trong hai thay đổi DOMDocument để DOMDocument60 (60 sử dụng ver 6.0) hoặc sử dụng các Microsoft XML, v3.0 tham khảo với DomDocument.

+0

Tôi thấy rằng bất cứ khi nào người dùng phải khởi động lại excel, nếu 'DOMDocument' được sử dụng trong Windows10, MS XML, v3.0 được chọn sẽ quay lại v6.0. Tuyến đường tốt hơn là sử dụng 'DOMDocument60' IMHO. – CarloC

0

Tôi làm việc với VBA Excel Macro mà người khác đã viết và tôi đã được giao nhiệm vụ sửa chữa nó sau khi nâng cấp gần đây từ Windows 7/Office 2010 lên Windows 10/Office 2016. Tôi bắt đầu nhận được cùng một "người dùng xác định loại không được xác định " Lỗi biên dịch. Cài đặt trước của tôi cũng có MS XML v6.0 nhưng dường như bạn phải chỉ rõ phiên bản này trong mã của bạn trên Windows 10 và/hoặc Office 2016 (tôi không thể xác nhận bản nâng cấp nào gây ra sự cố). Tôi đã có thể giải quyết vấn đề bằng cách thực hiện Tìm/Thay thế trên các mục sau:

"DOMDocument" to "MSXML2.DOMDocument60" 
"XMLHTTP" to "MSXML2.XMLHTTP60" 
Các vấn đề liên quan