Excel精英培训网

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

[已解决]为每个工作簿添加相同工作表

[复制链接]
发表于 2015-3-24 17:28 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2015-3-30 09:52 编辑

请问如何批量为同一个文件夹中的每一个工作簿添加一个带内容的相同名称的工作表??
最佳答案
2015-3-25 16:53
  1. Sub Macro1()
  2. Dim arr, wb As Workbook, i&, n&
  3. Set wb = ThisWorkbook
  4. arr = Range("a1:d" & Range("a65536").End(xlUp).Row + 1)
  5. Application.ScreenUpdating = False
  6. Application.DisplayAlerts = False
  7. Application.SheetsInNewWorkbook = 2
  8. n = 2
  9. For i = 3 To UBound(arr)
  10.     If arr(i, 1) <> arr(i - 1, 1) Then
  11.         Set rng = Range(Cells(n, 1), Cells(i - 1, 4))
  12.         With Workbooks.Add
  13.             wb.Sheets(1).Rows(1).Copy [a1]
  14.             rng.Copy [a2]
  15.             wb.Sheets(2).UsedRange.Copy Sheets(2).[a1]
  16.             Sheets(1).Name = arr(i - 1, 1)
  17.             Sheets(2).Name = "总表"
  18.             .SaveAs Filename:=ThisWorkbook.Path & "" & arr(i - 1, 1) & ".xls"
  19.             .Close 0
  20.         End With
  21.         n = i
  22.     End If
  23. Next
  24. MsgBox "OK"
  25. Application.SheetsInNewWorkbook = 3
  26. Application.DisplayAlerts = True
  27. Application.ScreenUpdating = True
  28. End Sub
复制代码
发表于 2015-3-25 09:41 | 显示全部楼层
“添加一个带内容的相同名称的工作表”,是什么意思?
不清楚结果是怎样的?
建议具体举例说明。
回复

使用道具 举报

 楼主| 发表于 2015-3-25 10:45 | 显示全部楼层
我是想把附件图片中11111工作薄的表“汇总”一次性添加到与其在同一文件夹下的其他工作簿中。
QQ图片20150325104050.jpg
回复

使用道具 举报

发表于 2015-3-25 11:54 | 显示全部楼层
是按A列拆分成3个工作簿吗
回复

使用道具 举报

 楼主| 发表于 2015-3-25 12:57 | 显示全部楼层
不是啦,拆分已经完成了,就是想在拆分好的各个分表里再添加一个总表。

点评

建议上传 excel 附件。  发表于 2015-3-25 14:05
回复

使用道具 举报

 楼主| 发表于 2015-3-25 14:45 | 显示全部楼层
这是原文件和我想达到的最后效果,请帮忙看下,多谢啦~

附件.rar

34.29 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2015-3-25 14:47 | 显示全部楼层
这只是举例,实际工作中有很多表要分,粘贴复制太麻烦
回复

使用道具 举报

发表于 2015-3-25 16:53 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, wb As Workbook, i&, n&
  3. Set wb = ThisWorkbook
  4. arr = Range("a1:d" & Range("a65536").End(xlUp).Row + 1)
  5. Application.ScreenUpdating = False
  6. Application.DisplayAlerts = False
  7. Application.SheetsInNewWorkbook = 2
  8. n = 2
  9. For i = 3 To UBound(arr)
  10.     If arr(i, 1) <> arr(i - 1, 1) Then
  11.         Set rng = Range(Cells(n, 1), Cells(i - 1, 4))
  12.         With Workbooks.Add
  13.             wb.Sheets(1).Rows(1).Copy [a1]
  14.             rng.Copy [a2]
  15.             wb.Sheets(2).UsedRange.Copy Sheets(2).[a1]
  16.             Sheets(1).Name = arr(i - 1, 1)
  17.             Sheets(2).Name = "总表"
  18.             .SaveAs Filename:=ThisWorkbook.Path & "" & arr(i - 1, 1) & ".xls"
  19.             .Close 0
  20.         End With
  21.         n = i
  22.     End If
  23. Next
  24. MsgBox "OK"
  25. Application.SheetsInNewWorkbook = 3
  26. Application.DisplayAlerts = True
  27. Application.ScreenUpdating = True
  28. End Sub
复制代码
回复

使用道具 举报

发表于 2015-3-25 16:55 | 显示全部楼层
………………

原文件.zip

12.83 KB, 下载次数: 13

回复

使用道具 举报

 楼主| 发表于 2015-3-27 11:00 | 显示全部楼层
如果是按照第四列分表,且要分的表有很多行、很多列,需要改哪些数据?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 16:22 , Processed in 0.481952 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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