Vba 编译器错误:未定义用户定义的类型

Vba 编译器错误:未定义用户定义的类型,vba,excel,Vba,Excel,我在这一行得到编译时错误“未定义用户定义的类型”: Dim cn As ADODB.Connection 有什么不对劲吗 代码: 我忘了添加对“Microsoft ActiveX数据对象2.5库”的引用:早期绑定需要此引用 如何获得该参考: 工具>引用>选中“Microsoft ActiveX数据对象2.5库”前面的复选框 其他有效的图书馆包括: Microsoft ActiveX数据对象2.6库 Microsoft ActiveX数据对象2.7库 Microsoft ActiveX数据对象2

我在这一行得到编译时错误“未定义用户定义的类型”:

Dim cn As ADODB.Connection
有什么不对劲吗

代码:


我忘了添加对“Microsoft ActiveX数据对象2.5库”的引用:
早期绑定需要此引用

如何获得该参考:

工具>引用>选中“Microsoft ActiveX数据对象2.5库”前面的复选框

其他有效的图书馆包括:

Microsoft ActiveX数据对象2.6库

Microsoft ActiveX数据对象2.7库

Microsoft ActiveX数据对象2.8库


Microsoft ActiveX数据对象6.1库

您可以使用后期绑定:

Dim cn As Object

这将使问题消失。执行
Set cn=CreateObject(“ADODB.Connection”)
语句时,VBA将自动进行引用。

我尝试添加Microsoft ActiveX数据对象2.5和2.8库,但没有成功。但当我尝试创建新对象时,如下图所示,它起了作用

Set cn = CreateObject("ADODB.Connection")

@Jean-FrançoisCorbett似乎我能让这个工作的唯一方法是添加引用。。。可能我不理解您的解决方案。测试
Dim cn As Object:Set cn=CreateObject(“ADODB.Connection”)
在这一端可以正常工作。您是否真的遇到了与以前相同的错误?这并没有提供任何新的解决方案。这在另一个答案中已经说过。此方法称为后期绑定。的可能重复
Set cn = CreateObject("ADODB.Connection")