将命名范围从excel导入access

将命名范围从excel导入access,excel,vba,Excel,Vba,我需要将一行数据从excel工作表导入Access数据库表。 我已经预先配置了数据行,以便单元格与Access表中的字段相对应。数据已命名为一个范围。 使用Access GUI,我可以附加一个表,它让我可以选择导入一个范围,而不是一个表。 有没有办法通过VBA实现这一点?是的,有。。。实际上不止一种方式。我可能会在Access VBA宏中执行类似的操作。首先使用COM自动化打开Excel工作簿: Dim xl As Object Set xl = CreateObject("Excel.Appl

我需要将一行数据从excel工作表导入Access数据库表。
我已经预先配置了数据行,以便单元格与Access表中的字段相对应。数据已命名为一个范围。
使用Access GUI,我可以附加一个表,它让我可以选择导入一个范围,而不是一个表。

有没有办法通过VBA实现这一点?

是的,有。。。实际上不止一种方式。我可能会在Access VBA宏中执行类似的操作。首先使用COM自动化打开Excel工作簿:

Dim xl As Object
Set xl = CreateObject("Excel.Application") 'open Excel
Dim wb as Object, ws as Object
Set wb = xl.WorkBooks.Open("c:\mypath\myfile.xlsx") 'open WorkBook
Set ws = wb.worksheets("My Sheet") 'Select WorkSheet
然后从命名区域中获取数据

Data1 = ws.Range("myRangeName").Cells(1,1)
Data2 = ws.Range("myRangeName").Cells(1,2)
Data3 = ws.Range("myRangeName").Cells(1,3)
Data4 = ws.Range("myRangeName").Cells(1,4)
然后在插入Access SQL语句之前,根据需要对数据进行任何必要的操作(例如,格式化日期、处理特殊字符)。最后,用SQL字符串插入数据

qs = "INSERT INTO MyTable (Field1,Field2,Field3,Field4) VALUES ('" & Data1 & "','" & Data2 & "','" & Data3 & "','" & Data4 & "');"
CurrentDb.Execute qs

本例假设所有字段都将接收字符串数据。

谢谢您提供的信息。这看起来正是我想要做的。