在access vba

时间:2016-04-18 19:39:40

标签: excel vba excel-vba ms-access

我正在尝试使用VBA读取访问应用程序中的excel文件。我有这段代码:

Dim xlApp As Excel.Application
Dim xlWrksht As Excel.worksheet

我从这里得到的:

Best way to read an Excel file into an Access database

但是当我尝试运行它时,我收到用户定义类型未定义的错误。

我应该添加对应用程序的引用吗?

如果不添加对我的应用程序的引用,有没有办法可以做到?

编辑1

添加对代码的引用后,现在我有了这段代码:

Dim excelApp As Excel.Application
Dim workbook As Excel.workbook
Dim Worksheet As Excel.Worksheet
Set excelApp = CreateObject("Excel.application")
Set workbook = excelApp.Open(InputFileName)
Set Worksheet = workbook.Worksheets(1)

但现在我收到了错误:

Set workbook = excelApp.Open(InputFileName)

因为excelApp没有任何名为Open的方法。我应该添加任何其他参考吗?

3 个答案:

答案 0 :(得分:1)

如果您知道Excel工作表的结构,则可以使用查询和/或Recordsets链接到一个工作表中的各种范围,将每个范围视为一个表。此行中的最后一个参数表示第一个工作表中的范围:

DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, myTableName, ExcelFileName, False, "f3:L10"  

您可以删除此链接:

CurrentDb.TableDefs.Delete (myTableName)

答案 1 :(得分:0)

如果不添加对象的引用,则Access将不知道要与变量一起使用的对象。对象/类型是内置的或引用的,因此可以使用。

您还应该包含Excel.Workbook,因为层次结构是App - >工作簿 - >工作表 - >细胞

答案 2 :(得分:0)

您需要添加对Access项目的引用,否则它将无法识别它。

-G。