乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel 锁定单元格-提取固定位置(行或者单元格)数据的方法

excel 锁定单元格-提取固定位置(行或者单元格)数据的方法

作者:乔山办公网日期:

返回目录: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 提取某行的内容?


相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网