使用ADO从封闭的Excel工作表中select数据

我有一个名为“SomeFile.xlsx”的工作簿,我需要连接到此工作表并从工作表中提取一系列数据。 我试图连接使用ADO没有成功。 我有以下代码:

Sub ExtractData() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim PathName As String Dim PathRange As String PathRange = "SELECT * FROM [AddConvert$D4:D10];" PathName = "C:\path\myFile.xlsx" Set cnn = New ADODB.Connection With cnn .Provider = "Microsoft.ACE.OLEDB.12.0 " .ConnectionString = "Data Source=" & PathName & ";Extended Properties=Excel 12.0;" .CursorLocation = adUseClient .Open End With 'Works fine up to here Set rs = cnn.Execute(PathRange) 'Dies here End Sub 

一切工作尽我所知。 我在cnn上放了一只手表,最后一行中断了。 cnn看起来不错。 HOwever,它一直说它找不到AddConvert工作表并获取数据。 我不明白为什么它找不到或发生了什么。

您应该使用Excel 12.0 for .xlsx文件。 例:

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx; Extended Properties="Excel 12.0 Xml;HDR=YES"; 

来自connectionstrings