ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何按照某一字段的项目将总表分成以各项目为工作表名的分表?(仿透视表的报表筛选)

如何按照某一字段的项目将总表分成以各项目为工作表名的分表?(仿透视表的报表筛选)

作者:绿色风 分类: 时间:2022-08-17 浏览:144
楼主
水星钓鱼
Q:如何按照某一字段的项目将总表分成以各项目为工作表名的分表?
A:动画如下:

 
利用ADO可以轻松的实现这一要求
代码如下:
  1. Sub xyf()
  2.     Dim oRecrodset
  3.     Dim sConStr As String
  4.     Dim sSql As String
  5.     Dim oWk As Worksheet
  6.     Dim i As Integer
  7.     Dim j As Integer
  8.     Dim arr
  9.     Application.DisplayAlerts = False
  10.     For Each oWk In Application.Worksheets
  11.         If oWk.Name <> "总表" Then
  12.             oWk.Delete
  13.         End If
  14.     Next
  15.     Application.DisplayAlerts = True
  16.     sConStr = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 8.0;HDR=YES'"
  17.     sSql = "select distinct 门店 from [总表$]"
  18.     Set oRecrodset = CreateObject("ADODB.Recordset")
  19.     With oRecrodset
  20.         .Open sSql, sConStr
  21.         arr = .getrows
  22.         .Close
  23.         For i = 0 To UBound(arr, 2)
  24.             Set oWk = ThisWorkbook.Worksheets.Add
  25.             oWk.Name = arr(0, i)
  26.             sSql = "select * from [总表$] where 门店='" & arr(0, i) & "'"
  27.             .Open sSql, sConStr
  28.             For j = 1 To .Fields.Count
  29.                 oWk.Cells(1, j) = .Fields(j - 1).Name
  30.             Next
  31.             oWk.Cells(2, 1).CopyFromRecordset oRecrodset
  32.             .Close
  33.         Next
  34.     End With
  35.     Set oRecrodset = Nothing
  36. End Sub
附件如下:

总表拆分成分表.rar
2楼
yytax2010
新意                  
3楼
老糊涂

4楼
icenotcool


5楼
美丽的猪
因为宏和SQL语句都是新接触到的,完全不太明白,求指导。

不知道是代码中哪些关键语句进行修改就好了?

PS:需要按省份,切割成不同的工作薄。附件已传。
附件1.rar
6楼
美丽的猪
你好,正好手上有这样一个总表,需要按关键字段切割成各分表,或者各工作薄,麻烦指导。
7楼
飞虎
不错,但是那个动画没有看懂
8楼
yingmh1024
不错,从来没有这样试过.
9楼
bluexuemei
ADO+SQL将总表拆分成分表,好方法!
10楼
wise
这个功能很实用。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap