声明早期绑定的MSXML对象会在VBA中引发错误

时间:2012-06-28 13:28:00

标签: excel vba scripting msxml

我正在尝试将xml数据导入excel .. 所以代码的第一行是

Dim XMLDOC As MSXML2.DOMDocument

这会产生错误“用户定义的类型未定义”

5 个答案:

答案 0 :(得分:33)

在VBE内部,转到工具 - >参考,然后选择Microsoft XML,v6.0(或任何您最新的。这将使您可以访问XML对象库。

更新了花哨的照片!

enter image description here

答案 1 :(得分:24)

我已定义DOMDocument需要Microsoft XML, v3.0,但我在参考文献中选择Microsoft XML, v6.0导致以下错误

  

"用户定义的类型未定义"。

解决方案

解决方案是将DOMDocument更改为DOMDocument60(60使用版本6.0)或将Microsoft XML, v3.0引用更改为DomDocument

答案 2 :(得分:3)

我使用其他人编写的VBA Excel宏,并且在最近从Windows 7 / Office 2010升级到Windows 10 / Office 2016后,我的任务是修复它。我开始接收相同的"用户定义的类型未定义"编译错误。我以前的安装也有MS XML v6.0,但显然你必须在Windows 10和/或Office 2016的代码中专门指向这个版本(我无法确认哪个升级导致了这个问题)。我能够通过以下方式进行查找/替换来解决问题:

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

答案 3 :(得分:2)

我正在使用Microsoft Windows 10& Office 2016。

使用 Microsoft XML 6.0 无法解决问题。

选择 Microsoft XML 3.0 修复了编译错误

Microsoft XML 3.0 reference

答案 4 :(得分:0)

我安装了第3版和第6版,该项目使用第4版。我从https://www.microsoft.com/en-us/download/details.aspx?id=15697安装了第4版,就解决了这个问题。