excel - 使用 ADO 从关闭的 Excel 工作表中选择数据

标签 excel ado

我有一个名为“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 上放置了一个 watch ,并在最后一行放置了一个中断。 cnn 看起来不错。然而,它一直说找不到 AddConvert 工作表并获取数据。我不明白为什么它找不到它或发生了什么。

最佳答案

对于 .xlsx 文件,您应该使用 Excel 12.0。示例:

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

来自 connectionstrings

关于excel - 使用 ADO 从关闭的 Excel 工作表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688148/

相关文章:

excel - 将 INDEX/MATCH 与多个条件和多个匹配连接起来

algorithm - 从日期数组中选择正确的日期 - Algo

excel - VBA类模块: get property from an object using another property

delphi - Delphi中是否有某种方法可以缓存主从行并同时发布主从子行

vba - 将 Excel 连接到 Access - VBA

asp-classic - 这个 'Multiple-step OLE DB' 错误是什么?

excel - 确定未锁定单元格范围的快速方法

MySQL 和 ADO - 无望了吗?

sql-server - 有人可以解释一下参数 RETURN_VALUE 吗?

vba - 在 for 循环或数组中处理 Range 值是否更优化