Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 15577|回复: 30

[已解决]如何将总表分成分表,又将分表合成总表?以A列数据为准。

  [复制链接]
发表于 2012-4-20 15:35 | 显示全部楼层 |阅读模式
本帖最后由 gavincar 于 2012-4-20 15:39 编辑

想得到如下结果:
将这个总表的数据以班级为单位分成若干个小文件,即每个文件中含有本班的所有信息,文件名为班级名。
如:司法1班.xls、综合1班.xls
生成的每个文件的第一行与总表相同。
注:每个班人数可能不同。
另:能否再将已分的若干个以班级命名的小文件(在同一文件夹下)合并成总表呢?
通过VBA如何实现。

将总表分成:
司法1班.xls
司法2班.xls
行政1班.xls
行政2班.xls
综合1班.xls
综合2班.xls
综合3班.xls

如何再将这些分表再合成总表。

注:例子中有7个班级在实际工作中可能会有更多的班级,十个二十个的。
最佳答案
2012-4-20 16:59

Sub 拆分表()
Dim wb As Workbook '声明一个工作簿变量
Dim r As Integer, k As Integer '声明r为了存放总行数,k是初始行数
Dim x As Integer '循环变量
With ThisWorkbook.Sheets("sheet1") '使用with 语句 后面凡带.的前面都省略了with后的对象
r = Sheets("sheet1").Range("a65536").End(xlUp).Row '获得r的值,即总行数
  For x = 2 To r '在行之间建立循环
    k = x '变量k用来记录初始的值
    Do Until .Cells(x + 1, 1) <> .Cells(x, 1) '如果发现A列的班级上下名称不一样,中止循环
       x = x + 1 '如果名称一样则让x+1,即继续向下循环
    Loop
    '通过上面的循环可以找到本次班级的区域
   Set wb = Workbooks.Add '添加一个excel文件
   .Range("a1:f1").Copy wb.Sheets(1).Range("a1") '拷贝标题行
   .Cells(k, 1).Resize(x - k + 1, 6).Copy wb.Sheets(1).Range("a2") '拷贝内容行
   wb.SaveAs ThisWorkbook.Path & "/" & .Cells(k, 1) & ".xls" '另存新文件
   wb.Close True '保存并关闭新文件
  Next x '继续找下一个班级
End With
End Sub

总表.zip

7.51 KB, 下载次数: 434

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-4-20 16:59 | 显示全部楼层    本楼为最佳答案   

Sub 拆分表()
Dim wb As Workbook '声明一个工作簿变量
Dim r As Integer, k As Integer '声明r为了存放总行数,k是初始行数
Dim x As Integer '循环变量
With ThisWorkbook.Sheets("sheet1") '使用with 语句 后面凡带.的前面都省略了with后的对象
r = Sheets("sheet1").Range("a65536").End(xlUp).Row '获得r的值,即总行数
  For x = 2 To r '在行之间建立循环
    k = x '变量k用来记录初始的值
    Do Until .Cells(x + 1, 1) <> .Cells(x, 1) '如果发现A列的班级上下名称不一样,中止循环
       x = x + 1 '如果名称一样则让x+1,即继续向下循环
    Loop
    '通过上面的循环可以找到本次班级的区域
   Set wb = Workbooks.Add '添加一个excel文件
   .Range("a1:f1").Copy wb.Sheets(1).Range("a1") '拷贝标题行
   .Cells(k, 1).Resize(x - k + 1, 6).Copy wb.Sheets(1).Range("a2") '拷贝内容行
   wb.SaveAs ThisWorkbook.Path & "/" & .Cells(k, 1) & ".xls" '另存新文件
   wb.Close True '保存并关闭新文件
  Next x '继续找下一个班级
End With
End Sub
回复

使用道具 举报

发表于 2012-4-20 17:14 | 显示全部楼层
回复

使用道具 举报

发表于 2012-4-20 17:27 | 显示全部楼层
多谢兰版 ,学习先。
回复

使用道具 举报

发表于 2012-4-20 17:38 | 显示全部楼层
学习、学习、再学习!不知那天学得会?!但也要屡败屡战!!!
回复

使用道具 举报

发表于 2012-4-20 18:56 | 显示全部楼层
学习了  校长是得心应手啊
回复

使用道具 举报

发表于 2012-4-20 19:59 | 显示全部楼层
合并和拆分是办公室必修的游戏,谢谢兰版。
回复

使用道具 举报

发表于 2012-4-20 20:28 | 显示全部楼层
我先收藏,然后学习
回复

使用道具 举报

发表于 2012-4-20 20:31 | 显示全部楼层
看这意思,班级是连在一起的,未打乱
回复

使用道具 举报

发表于 2012-4-20 21:00 | 显示全部楼层
先看再慢慢消化吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 03:51 , Processed in 0.338506 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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