VBA ADODB excel – 从Recordset读取数据

希望你能帮助我,我想从excel文件中读取数据,而我在做的方式是在背景中创buildExcel应用程序的实例,但比提示有关VBAmacros – 禁用或启用它。

我有100个excel文件,我需要从中收集数据,所以如果我会被提示每一个文件,我最终将不会有效的方法。 虽然我是新手在Excel VBA世界,并开始怀疑是否有任何其他方式…..

我的问题是我可以用其他方式打开它们吗?

我find了…… ADODB,我觉得这可能对我有帮助。 所以我有代码如下。 作为第一件事我想从less数细胞读取数据。 我不知道如何读取数据。 我尝试阅读,你可以看到下面,但它会抛出错误。 Opennig连接顺利,查询执行也。 但是,我只是猜测,如何读取数据。

我使用VBA编辑器。

Sub hello_jet() Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=D:\test.xls" & _ "Extended Properties=Excel 8.0;" .Open End With strQuery = "SELECT * FROM [Sheet1$E36:E38]" Set rs = cn.Execute(strQuery) Do While Not rs.EOF Set strNaam = rs.Fields(0).Value Loop rs.Close End Sub 

我在Office 2003中工作,但我发现excell的版本应该是11.这是行不通的

我很惊讶连接string适合你,因为它缺less一个分号。 设置只用于对象,所以你不会说设置strNaam。

 Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=D:\test.xls " & _ ";Extended Properties=""Excel 8.0;HDR=Yes;""" .Open End With strQuery = "SELECT * FROM [Sheet1$E36:E38]" Set rs = cn.Execute(strQuery) Do While Not rs.EOF For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i).Name, rs.Fields(i).Value strNaam = rs.Fields(0).Value Next rs.MoveNext Loop rs.Close 

还有其他的方法,取决于你想要做什么,比如GetString( http://www.w3schools.com/ado/met_rs_getstring.asp )。