excel学习库

excel表格_excel函数公式大全_execl从入门到精通

利用ADO连接EXCEL,提取固定位置(行或者单元格)的数据

大家好,我们继续VBA数据库解决方案的学习,今天讲解第33讲:利用ADO连接EXCEL,提取固定位置(行或者单元格)的数据。在上一讲中我们学习了ADO连接EXCEL后,实现提取列数据的方法,但很多的时候,必要的数据并不是在整列中的,也有可能在行或者某单元格的固定位置,这个时候要如何处理呢?这个内容就是我今天要讲解的内容。 实例:我们要统计的数据资料如下截图的数据:要把某个工作薄中固定工作表内的B1单元格及第2行中A2到AC2中的数据提取出来放到当前的工作表内的cells(18,1)和第19行内。 相信大家一看上面的例子就清楚了,如果结合上一讲的内容就可以实现多个工作表数据的提取了,那么代码怎么写呢?看下面的代码: Sub mynzexcels_2() '第33讲,利用ADO,实现EXCEL工作表某行或者某单元格的数据提取 Dim cnADO, rsADO As Object Dim strPath, strTable, strSQL As String Set cnADO = CreateObject("ADODB.Connection") Rows("18:18").Clear Rows("19:19").Clear strPath = ThisWorkbook.Path & "\" & "15年.xlsx" strTable = "[sheet1$B1:B1]" '建立连接,提取B1单元格的数据 cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath strSQL = "select * from " & strTable Cells(18, 1).CopyFromRecordset cnADO.Execute(strSQL) '提取A2:AO2的数据 strTable = "[sheet1$A2:AO2]" strSQL = "select * from " & strTable Cells(19, 1).CopyFromRecordset cnADO.Execute(strSQL) cnADO.Close Set cnADO = Nothing End Sub 代码截图:代码的讲解: 如上面绿色的框框:分别准备了B1单元格和A2:AO2单元格数据的提取的命令代码。然后在cnADO.Execute(strSQL) 中将执行代码。 在上面的代码中还用到了ADO对EXCEL的连接:provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath 这是连接excel 2007 后的专用代码,大家一定要记入自己的资料库中,有的朋友会问如何连接低版本的呢?您可以在《VBA数据库解决方案》中得到答案。 通过上一讲和这讲知识的讲解,我们可以非常方便的利用ADO连接多个EXCEL文件从里面提取数据,如果我们的数据在多个EXCEL中的位置如果是固定的,那么很容易会形成我们需要的新文件,就是这样的一个思路,可以大幅的提高我们的工作效率,而我们只需的是告诉计算机如何去执行我们的命令,我们的命令是靠VBA代码下达的,VBA代码是我们的有效手段。 好了下面看我们的代码执行情况。点击下面的”EXCEL中行或者单元格拷贝数据”按钮:在当前的工作表中将会提取到15年.xlsx文件下的数据:当然,上面的例子中我只是列举了从一个文件中提取数据的方案,如何从多个工作薄中提取数据呢?只要我们和上一讲一样做一个数组就可以实现了,数组的数据,我们也可以在当前的工作表中实现。 今日内容回向: 1 如何用ADO 连接EXCEL 提取某个单元格的内容? 2 如何用ADO 连接EXCEL 提取某行的内容?

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接