我正在尝试从Word宏打开Excel文件,并访问Excel文件中的数据。但是,我只能得到exWb的定义,并且我遇到了上面的错误。我的代码是:
Sub mySub()
Dim objExcel As Object
Set objExcel = CreateObject("Excel.Application")
Dim exWb As Excel.Workbook
'Dim exWb As Object
'Set exWb = CreateObject("Excel.Workbook")
...
End Sub
问题在于
Dim exWb As Excel.Workbook
我得到错误:
Compile error: User-defined type not defined
或者
Dim exWb As Object
Set exWb = CreateObject("Excel.Workbook")
我收到错误:
Run-time error '429':
ActiveX component can't create object
Excel 2007安装在PC上,我添加了对Microsoft Office 12.0对象库和Microsoft ActiveX Data Objects 6.1库的引用,但这没有帮助。
有人有任何建议吗?
答案 0 :(得分:2)
你可以做两件事之一
1:
添加对excel对象库的引用(参见@ DisplayName的答案),并稍微重写一下代码:
Dim exApp As Object
Set exApp = CreateObject("Excel.Application")
这是早期绑定。优点是编写代码更容易,因为intellisense正在帮助您。缺点是如果有人试图在不同的Office版本(例如Excel 2013)中运行它,它将无法工作。
2:
不要添加引用,并使用以下代码:
Set exWb = exApp.Workbooks.Add
您正在尝试创建Excel 应用程序。在此应用程序中,您要创建工作簿({{1}})等。
这是后期绑定,这使您在编码时很难,但无论Excel版本如何都可以使用。
我通常在早期绑定中编码,然后在完成后将代码重写为后期绑定。
答案 1 :(得分:1)
您必须添加Excel库参考
在VBA IDE中,单击