从word宏访问Excel文件

时间:2018-02-05 15:59:35

标签: excel vba excel-vba

我正在尝试从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库的引用,但这没有帮助。

有人有任何建议吗?

2 个答案:

答案 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中,单击

  • 工具
  • 参考
  • 选择Microsoft Excel XX.0对象库
  • " OK"