excel学习库

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

利用ADO,把工作表数据汇总成一个类似数据透视表的报表

大家好,我们继续讲解VBA数据库解决方案,今日讲解第52讲内容:利用ADO,把工作表数据汇总成一个类似数据透视表的报表。 提到数据透视表,对于从事数据统计人员来说,是非常熟悉了,数据汇总,排重等等工作都可以依靠数据透视表来完成.是的,当数据少时,用EXCEL自带的数据透视表的功能非常方便,但是,当数据多时,往往力不从心。有没有好的办法?当然有!VBA会一直陪伴你的左右. 实例:在一个EXCEL文件中,有如下的工作表数据: 我们要根据此数据形成一个类似于数据透视表的报表文件,该如何做?我们可以先看看形成的数据透视表的样子:当然,此数据透视表是分若干个步骤做成来的,最后是数值粘贴才形成的这个文件。我们就以这个数据透视表为蓝本,看看我们VBA是如何做到的。 下面我给出我的代码: Sub mynzRecords_52() '第52讲 把工作表数据做成一个类似数据透视表的报表. Dim cnADO, rsADO As Object Dim strPath, strSQL As String Worksheets("52").Select Cells.ClearContents Set cnADO = CreateObject("ADODB.Connection") Set rsADO = CreateObject("ADODB.Recordset") strPath = ThisWorkbook.FullName cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath strSQL = "select 型号,生产厂,供应商,SUM(数量) from [数据备份$] group by 型号,生产厂,供应商" arr = Array("型号", "生产厂", "供应商", "数量") [a1:d1] = arr [a65536].End(xlUp).Offset(1, 0).CopyFromRecordset cnADO.Execute(strSQL) cnADO.Close Set cnADO = Nothing Set rsADO = Nothing End Sub 代码截图:代码讲解: 1 本讲的内容类似于上讲的内容,上一讲将的是多工作表的汇总,这讲讲的是单工作表的汇总,比上讲要容易些。 2 重点的语句理解是 cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath 要注意连接的方式,不要弄错。 3 strSQL = "select 型号,生产厂,供应商,SUM(数量) from [数据备份$] group by 型号,生产厂,供应商" 这句是SQL语句 的写法,要注意写法,在自己写的时候尽可能从我的代码中复制过去(EXCEL程序文件,也就是我的文中截图的原始文件会随《VBA数据库解决方案》一书一起分享) 下面看我们得到的结果:文件形成了,看起来要比数据透视表的文件舒服。 今日内容回向: 1 上面的数据透视表文件如何做成? 2 上述代码和上一讲的代码类似,那么多表文件如何能做成数据透视表文件呢?

发表评论:

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

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