Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在access vba中读取excel文件_Vba_Excel_Ms Access - Fatal编程技术网

在access vba中读取excel文件

在access vba中读取excel文件,vba,excel,ms-access,Vba,Excel,Ms Access,我正在尝试使用VBA读取access应用程序中的excel文件。我有以下代码: Dim xlApp As Excel.Application Dim xlWrksht As Excel.worksheet Dim excelApp As Excel.Application Dim workbook As Excel.workbook Dim Worksheet As Excel.Worksheet Set excelApp = CreateObject("Excel.applicat

我正在尝试使用VBA读取access应用程序中的excel文件。我有以下代码:

Dim xlApp As Excel.Application
Dim xlWrksht As Excel.worksheet
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)
我从这里得到:

但当我尝试运行它时,我得到一个错误,用户定义类型不是define

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

有没有什么方法可以在不向我的应用程序添加引用的情况下实现这一点

编辑1 添加对代码的引用后,现在我有了以下代码:

Dim xlApp As Excel.Application
Dim xlWrksht As Excel.worksheet
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的方法。我是否应该添加任何其他引用?

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


您还应该包括Excel.Workbook,因为层次结构是App->Workbook->Worksheet->Cells。

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


G.

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

DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, myTableName, ExcelFileName, False, "f3:L10"  
您可以将此链接作为任何表删除:

CurrentDb.TableDefs.Delete (myTableName)

谢谢,我有个新问题,你能帮我吗?我用新问题更新了问题。首先,你通常应该接受问题的答案,并针对不同的问题提出新问题。第二,使用workbook.open(InputFileName)。特别是:
excelApp.Workbooks.open(InputFileName)
。如果在Excel内部运行此行,则不会引用应用程序对象,但在Excel外部,则需要引用它(作为外部对象)。正确。我应该说得更清楚。
Set workbook=excelApp.Application.Workbooks.Open“InputFileName”
这样做有用吗?