Excel精英培训网

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

[已解决]不同文件夹里的同名文件合并

[复制链接]
发表于 2014-3-30 23:31 | 显示全部楼层 |阅读模式
在A和B的文件夹里分别有多个相同名称的xls文件,把同名文件里的工作表合并起来后以原有名称保存到C文件里,已把例表上传至附件,现请求各位大师帮忙给予解决,在此先谢谢了!
最佳答案
2014-3-31 10:36
  1. Sub Macro1()
  2. On Error Resume Next
  3. Dim wb As Workbook, wb2 As Workbook
  4. Dim zf$, i%, x%, mypath$, wj$
  5. Application.ScreenUpdating = False
  6. Application.DisplayAlerts = False
  7. mypath = ThisWorkbook.Path & ""
  8. wj = Dir(mypath & "A\*.xls")
  9. Do While wj <> ""
  10.     Set wb = GetObject(mypath & "A" & wj)
  11.     zf = "新" & wj
  12.     wb.SaveAs Filename:=mypath & "C" & zf
  13.     Set wb2 = GetObject(mypath & "B" & wj)
  14.     Application.Windows(zf).Visible = True
  15.     Application.Windows(wb2.Name).Visible = True
  16.     For i = 1 To wb2.Sheets.Count
  17.         x = Workbooks(zf).Sheets.Count
  18.         wb2.Sheets(i).Copy after:=Workbooks(zf).Sheets(x)
  19.     Next
  20.     wb2.Close 0
  21.     Workbooks(zf).Close 1
  22.     wj = Dir
  23. Loop
  24. Application.DisplayAlerts = True
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码

不同文件夹里的同名文件合并.rar

19.01 KB, 下载次数: 20

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-3-30 23:38 | 显示全部楼层
回复

使用道具 举报

发表于 2014-3-31 06:30 | 显示全部楼层
无论是前台还是后台打开文件,两个重名文件(包括不在同一文件夹下)不能同时打开,这个是处理的难点。
回复

使用道具 举报

发表于 2014-3-31 10:36 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. On Error Resume Next
  3. Dim wb As Workbook, wb2 As Workbook
  4. Dim zf$, i%, x%, mypath$, wj$
  5. Application.ScreenUpdating = False
  6. Application.DisplayAlerts = False
  7. mypath = ThisWorkbook.Path & ""
  8. wj = Dir(mypath & "A\*.xls")
  9. Do While wj <> ""
  10.     Set wb = GetObject(mypath & "A" & wj)
  11.     zf = "新" & wj
  12.     wb.SaveAs Filename:=mypath & "C" & zf
  13.     Set wb2 = GetObject(mypath & "B" & wj)
  14.     Application.Windows(zf).Visible = True
  15.     Application.Windows(wb2.Name).Visible = True
  16.     For i = 1 To wb2.Sheets.Count
  17.         x = Workbooks(zf).Sheets.Count
  18.         wb2.Sheets(i).Copy after:=Workbooks(zf).Sheets(x)
  19.     Next
  20.     wb2.Close 0
  21.     Workbooks(zf).Close 1
  22.     wj = Dir
  23. Loop
  24. Application.DisplayAlerts = True
  25. Application.ScreenUpdating = True
  26. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
dc_empery + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-3-31 10:37 | 显示全部楼层
………………

新建文件夹.zip

28.99 KB, 下载次数: 31

回复

使用道具 举报

 楼主| 发表于 2014-3-31 11:39 | 显示全部楼层
dsmch 发表于 2014-3-31 10:37
………………

真是太感谢dsmch大师给予精彩完美的解答,我的问题迎刃而解啦!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 15:43 , Processed in 0.382851 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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