Access数据库引擎找不到对象 – 对象是Excel命名的范围

这是让我绕圈子转了一会儿,基本上所有我想要做的是将一个Exceldynamic范围的值插入到Access表中。

例如,我已经通过引用范围成功地做到了这一点,但是为了让事情更自我一点,我更愿意使用dynamic范围。

我有的代码如下:

Sub ExportDistDatatoSql() Dim cn As ADODB.Connection Dim STRQUERY As String Set cn = New ADODB.Connection With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\uMyDB.accdb;" .Open End With ssql = "INSERT INTO Crude_Prods_DB Select * from [Excel 12.0;HDR=YES;DATABASE=C:\TEST\mysheet.xlsm].[n_range]" cn.Execute ssql End Sub 

我看到的错误是附加的,我检查了[n_range]确实存在于工作簿中。

[尝试从Excel命名范围中将数据插入访问表时出现错误]

任何build议将不胜感激。

我经过惨痛的教训才学到这个。 dynamic范围只有在Excel运行时才被parsing,因此在您刚读取文件时它不存在。

Access只能读取已保存和固定的命名范围。