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

10 浏览
0 Comments

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

我正在尝试将XML数据导入到Excel中。

所以代码的第一行是

Dim XMLDOC As MSXML2.DOMDocument

但这会出现错误"用户定义的类型未定义"。

0
0 Comments

在VBA中声明早期绑定的MSXML对象会引发错误。错误的原因是DOMDocument被定义为需要Microsoft XML, v3.0,但是在引用中选择了Microsoft XML, v6.0,导致以下错误:"用户定义的类型未定义"。

解决方法是将DOMDocument更改为DOMDocument60(60使用版本6.0),或者使用Microsoft XML, v3.0引用与DomDocument一起使用。

如果使用其他版本,例如Microsoft XML, v4.0,则应使用DOMDocument40。这是因为DOMDocument末尾的数字是特定于所使用的库版本的。

我发现每当用户必须重新启动Excel时,在Windows10中使用DOMDocument时,选择的MS XML, v3.0会恢复到v6.0。更好的方法是使用DOMDocument60。

版本6.0是最新版本,3.0是最后一个稳定版本(如果没有指定版本号,默认加载),不推荐在当前应用程序中使用版本4.0。

0
0 Comments

在这个问题中,出现错误的原因是VBA代码中声明的早期绑定的MSXML对象。在从Windows 7 / Office 2010升级到Windows 10 / Office 2016后,出现了相同的“用户定义的类型未定义”编译错误。以前的安装中也有MS XML v6.0,但在Windows 10和/或Office 2016中,你必须在代码中明确指向这个版本(我无法确认是哪个升级引起了此问题)。我通过以下的查找/替换来解决这个问题:

"DOMDocument"替换为"MSXML2.DOMDocument60"

"XMLHTTP"替换为"MSXML2.XMLHTTP60"

0
0 Comments

在VBA中声明早期绑定的MSXML对象会引发错误。出现这个问题的原因是没有正确引用Microsoft XML库。

解决方法是在VBE中选择“工具”->“引用”,然后选择Microsoft XML,v6.0(或者你的最新版本)。这将给你访问XML对象库的权限。

另外,如果你使用的是Windows 8,可能需要引用Microsoft XML v3,因为v6不会暴露DOMDocument类。

需要注意的是,如果你在v6的情况下使用变量声明为MSXML2.DOMDocument60,仍然可以使用v6。

通过以上方法,可以解决在VBA中声明早期绑定的MSXML对象引发错误的问题。

0