ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1778|回复: 4

[求助] 把一份表格拆分成多分工作表的,改怎么做啊

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-2 12:29 | 显示全部楼层 |阅读模式
我想要达到以下条件,这个程序改怎么编辑啊?
1、从第一行到第2695行,里面有很多2行的空白行,把第一行标题和第二行表头全部复制到所有2行的空白行中。
2、我想以“人员姓名”为切分的办法,将这个大表按人员姓名分成很多小的工作表,工作表名称是“陈从秀”、“范德骏”等姓名。3、范德骏、陈从秀的表最好也要有标题和表头
4、现有的工作表sheet1不做更改。其他的小工作表最好能放在

日报05-28至06-25.2.rar

255.9 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2013-7-2 13:44 | 显示全部楼层
  1. '*********************************
  2. '*******  北极狐工作室出品  ******
  3. '*******  QQ:14885553      ******
  4. '*********************************

  5. Sub opiona()
  6. Application.ScreenUpdating = False '//关闭屏幕刷新
  7. Application.DisplayAlerts = False '//关闭系统提示

  8. t = Timer   '//开始时间
  9. Set sh1 = Sheets("Sheet1")
  10. For Each sh In ThisWorkbook.Sheets
  11.     If sh.Name <> sh1.Name Then sh.Delete
  12. Next sh
  13. Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  14. StrSQL = "SELECT DISTINCT 人员姓名 FROM [" & sh1.Name & "$A2:M65536] where len(人员姓名)>0"


  15. CRR = GET_SQLCoon(StrSQL, Str_coon, False)
  16. For I = 0 To UBound(CRR, 1)
  17.     ThisWorkbook.Worksheets.Add(AFTER:=Worksheets(Worksheets.Count)).Name = CRR(I, 0) '//建立新表
  18.     Set NEWSH = Sheets(CRR(I, 0))
  19.     StrSQL1 = "SELECT * FROM [" & sh1.Name & "$A2:M65536] where 人员姓名='" & CRR(I, 0) & "'"
  20.     StrSQL1 = StrSQL1 & " ORDER BY 日报单号,派工单号,订单号"
  21.     ARR = GET_SQLCoon(StrSQL1, Str_coon, True)
  22.     NEWSH.Range("A1").Resize(UBound(ARR, 1) + 1, UBound(ARR, 2) + 1) = ARR
  23. Next I

  24. Application.ScreenUpdating = True '//恢复屏幕刷新
  25. Application.DisplayAlerts = True '//恢复系统提示
  26. MsgBox "用时:" & Format(Timer - t, "#0.0000") & " 秒", , "温馨提示!!"  '//提示所用时间
  27. End Sub


  28. '*****************************************************************************************
  29. '函数名:    GET_SQLCoon
  30. '函数功能:  获得指定SQL的查询结果,自定义连接字符串,可以连接各种数据库
  31. '返回值:    返回一个二维数组
  32. '参数1:     StrSQL   字符类型   SQL查询语句
  33. '参数2:     Str_coon 字符类型   数据库连接语句
  34. '参数3:     Biaoti   可参数选   是否输出标题,默认带有标题
  35. '使用方法:  Arr =  GET_SQLCoon(StrSQL,Str_coon,true)
  36. '            Arr(0,1)  '//数组第一行为标题行,从i=1 开始是数据
  37. '            Sh2.Range("A2").Resize(UBound(ARR, 1) + 1, UBound(ARR, 2) + 1) = ARR
  38. '*****************************************************************************************
  39. Public Function GET_SQLCoon(ByVal StrSQL As String, ByVal Str_coon As String, Optional Biaoti As Boolean = True) As Variant()
  40. On Error Resume Next    ' 改变错误处理的方式。
  41. Dim Cn, RS
  42.    Err.Clear
  43.    Set Cn = CreateObject("Adodb.Connection") '//新建一个ADO连接
  44.    Set RS = CreateObject("adodb.recordset")
  45.        Cn.Open Str_coon
  46.        RS.Open StrSQL, Cn, 1, 3
  47. '       If RS.RecordCount > 0 Then '//如果找到数据
  48.             If Biaoti = True Then
  49.                  ReDim ARR(0 To RS.RecordCount, 0 To RS.Fields.Count - 1)
  50.                      For A = 0 To RS.Fields.Count - 1  '//导入标题
  51.                         ARR(0, A) = RS.Fields(A).Name
  52.                      Next
  53.                  For I = 0 To RS.RecordCount - 1  '//导入数据
  54.                      For A = 0 To RS.Fields.Count - 1
  55.                          ARR(I + 1, A) = RS.Fields(A).Value
  56.                      Next A
  57.                      RS.MoveNext
  58.                  Next
  59.             Else
  60.                  ReDim ARR(0 To RS.RecordCount - 1, 0 To RS.Fields.Count - 1)
  61.                  For I = 0 To RS.RecordCount - 1  '//导入数据
  62.                      For A = 0 To RS.Fields.Count - 1
  63.                          ARR(I, A) = RS.Fields(A).Value
  64.                      Next A
  65.                      RS.MoveNext
  66.                  Next
  67.             End If
  68. '        Else '//如果没有找到数据
  69. '            ReDim Arr(1, 1)
  70. '            Arr(0, 0) = ""
  71. '        End If

  72.   GET_SQLCoon = ARR
  73.   Cn.Close  '//关闭ADO连接
  74.   Set RS = Nothing
  75.   Set Cn = Nothing  '//释放内存
  76. End Function

  77. '*****************************************************************************************


复制代码

TA的精华主题

TA的得分主题

发表于 2013-7-2 13:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
日报05-28至06-25.2.rar (251.93 KB, 下载次数: 23)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-7-2 13:50 | 显示全部楼层
试试这个东东

exceltools.rar

215.84 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2018-6-20 09:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ADO拆分工作表
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 02:49 , Processed in 0.037130 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表