Excel精英培训网

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

关于合并工作簿

[复制链接]
发表于 2013-4-22 21:25 | 显示全部楼层 |阅读模式
每天由门店发email给我表格,我要将这些表格汇总到一张总表里,可是门店又很多,要十几家,所以想哪位高手可以帮我如何用宏汇总到一张表格里面,谢谢!详细见附件

汇总.zip

11.39 KB, 下载次数: 29

发表于 2013-4-22 21:56 | 显示全部楼层
删除文件的代码你需要删除就启用,不需要删除就不启用

  1. Sub cc()
  2. Dim App As New Excel.Application, Bk As Workbook
  3. Dim Pat As String, Nm As String, Sh As Worksheet
  4. Dim Hx As Long, Rng As Range, Arr()
  5.   
  6.   App.Visible = True          '不显示 Excel 程序
  7.   App.AutomationSecurity = 2  '禁用宏
  8.   Set Sh = Sheets("Sheet1")   '指定 汇总 的工作表
  9.   Pat = ThisWorkbook.Path & ""   '提取路径
  10.   Nm = Dir(Pat & "*.xls")     '提取文件 名称
  11.   Do
  12.     If Not (Nm Like "*汇总*") Then    '如果 文件名中没有 汇总
  13.       Set Rng = Sh.Range("B65536").End(xlUp).Offset(1)
  14.       Set Bk = App.Workbooks.Open(Pat & Nm, , True) '以只读方式打开文件
  15.       With Bk.Sheets(1)   '指定第一个工作表
  16.         Hx = .Range("A65536").End(xlUp).Row   '提取数据使用的最大行数
  17.         Arr = .Range("A3:D" & Hx).Value       '提取数据
  18.         Rng.Resize(UBound(Arr), UBound(Arr, 2)).Value = Arr   '数据 写入
  19.         Rng.Offset(, -1).Value = Split(Nm, ".")(0)  '写入店名
  20.       End With
  21.       Bk.Close False    '关闭文件,并不保存
  22.       'Kill Pat & Nm    '删除文件
  23.     End If
  24.     Nm = Dir()    '读取 下一个文件
  25.   Loop Until Len(Nm) = 0    '如果文件读取完,则退出 do 循环
  26.   App.Quit      '退出 Excel 程序
  27. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-4-22 22:03 | 显示全部楼层
回复

使用道具 举报

发表于 2013-4-22 22:14 | 显示全部楼层
officeluna 发表于 2013-4-22 22:03
无法用呢,请说明详细一点,

打开你的汇总工作薄,把代码Copy进去,运行一下就行了
回复

使用道具 举报

发表于 2013-4-22 22:24 | 显示全部楼层
  1. Sub hoogle()
  2. Dim i, DataName
  3. Sheet1.Range("a3", Cells(Range("b65536").End(3).Row, "e")).ClearContents
  4. Sheet1.Range("a2").ClearContents
  5. DataName = Dir(ThisWorkbook.Path & "")
  6. Do While DataName <> ""
  7.     If DataName <> "汇总.xls" Then
  8.         Workbooks.Open (ThisWorkbook.Path & "" & DataName)
  9.             With ActiveWorkbook.Sheets("sheet1")
  10.                 .Range("a3", .Range("d65536").End(3)).Copy
  11.                 ActiveWorkbook.Close SaveChanges:=False
  12.             End With
  13.         ThisWorkbook.Sheets("Sheet1").Range("b65536").End(3).Offset(1, -1) = Split(DataName, ".")(0)
  14.         ThisWorkbook.Sheets("Sheet1").Range("b65536").End(3).Offset(1, 0).Select
  15.         ActiveSheet.Paste
  16.     End If
  17.     DataName = Dir
  18. Loop
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2013-4-22 22:29 | 显示全部楼层
所有文件放入这个文件夹.rar (17.22 KB, 下载次数: 64)
回复

使用道具 举报

发表于 2013-11-10 10:22 | 显示全部楼层
用这个工具可以轻松解决!
演示:(单击图片可以放大观看)

小千办公

小千办公

工具附件: 多簿单表数据合并专家1.0.rar (67.37 KB, 下载次数: 94)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 17:18 , Processed in 0.332171 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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