如果工作表的第一行没有列名称,如何使用ADODB连接从Excel中检索数据?

我使用以下types的代码从一些Excel工作簿检索数据(path是一个参数)

Dim strSQL As String, conStr as String Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & path & "';" & _ "Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"";" strSQL = "SELECT [Field1], [Field2] FROM [Worksheet$] WHERE [Thing1] > 1" cnn.open conStr rs.Open query, cnn, adOpenStatic, adLockOptimistic, adCmdText 

如果这些字段的名称位于工作表的第一行,则该代码可以正常工作。 问题是我需要从工作表中检索数据表中的数据从另一行开始(第10行)。

有没有办法指定我的数据表的第一行?

看到这个微软页面 。 你可以使用像这样的东西:

 strSQL = "SELECT [Field1], [Field2] FROM [Worksheet$$A10:B43] WHERE [Thing1] > 1" 

在查询中使用一个已命名或未命名的范围:

 strQuery = "SELECT * FROM MyRange" strQuery = "SELECT * FROM [Sheet1$A1:B10]" 

请参阅这些Microsoft支持文章以获取更多信息:

如何使用Visual Basic或VBA中的Excel数据使用ADO

ExcelADO演示了如何使用ADO在Excel工作簿中读取和写入数据

您可以查询从第10行开始的一系列单元格:

  "SELECT * FROM [Worksheet$A10:S100] WHERE [Thing1] > 1" 

最难的是find最后的范围应该是什么。 你可以放大一个可笑的数字,但是你必须在最后加上NULL的行。