ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

合并相同文件名的Excel工作表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-1-16 21:29 | 显示全部楼层 |阅读模式
合并说明:
1.将数据2的内容合并的数据1中,将数据1另存为”sj1-1-01.xlsx”的模式。
2.合并数据以B列为基础,数据1和数据2B列内容不相同的部分全部删除,只留B列内容一致的部分。具体结果文件见” sj1-1-01.xlsx”.
谢谢各位老师。

2017-1.part01.rar

1.5 MB, 下载次数: 10

2017-1.part02.rar

1.36 MB, 下载次数: 10

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-1-18 13:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我自己写了改了一段代码,但是有点问题,请各位老师帮我看一下吧,谢谢。


Sub 汇总()


Application.ScreenUpdating = False

Dim wb1 As Excel.Workbook
Dim wb2 As Excel.Workbook


'Dim sh, sht As Excel.Worksheet

f1 = Dir(ThisWorkbook.Path & "\数据1*.xls*") '生成查找EXCEL的目录,可以适应不同版本
f2 = Dir(ThisWorkbook.Path & "\数据2*.xls*")
'flnm = Dir(ThisWorkbook.Path & "\Test\t*.txt")

Do While f1 <> "" '在目录中循环

If f1 <> ThisWorkbook.Name Then  '如果不是打开的工作簿

Set wb1 = Workbooks.Open(ThisWorkbook.Path & "\" & f1) '依次打开目录工作薄
'If f2 <> ThisWorkbook.Name Then
Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & f2)


'For Each sh In wb.Worksheets '在打开的工作薄的工作表中循环

'For Each Sheet In wb1.Worksheets '在打开的工作薄的工作表中循环
'For Each Sheet In wb2.Worksheets
'For Each wb2 In ThisWorkbook

'k = wb2.Columns(2).Cells(sh.Columns(1).Cells.Count).End(xlUp).Row

If f1 = f2 Then

'wb2.Columns(2).Copy wb1.Columns(3).Cells(sht.Columns(1).Cells.Count).End(xlUp).Offset(1)
wb2.Columns(2).Copy wb1.Columns(3).Offset(0, 1)

'End If
End If


' Next
'
'  Next

wb1.Close '关闭打开的工作薄
wb2.Close

   End If

  f1 = Dir
'  f2 = Dir

Loop '结束循环

Application.ScreenUpdating = True

End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2017-1-20 21:22 | 显示全部楼层
Option Explicit


Sub test()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim p, f1, f2, f1name, f2name

p = "C:\Users\tangsheng\Desktop\2017-1\2017-1\" '假设文件所在的文件夹
f1 = Dir(p & "\数据1-*.xls") '如果是2003版的,请改为""*.xls"
f2 = Dir(p & "\数据2-*.xls")

Do


Workbooks.Open (p & f1)
Workbooks(f1).Worksheets(1).Range("I22").Select
f1name = Right(f1, 8)


Do While f2 <> ""

f2name = Right(f2, 8)



If f1name = f2name Then
Workbooks.Open (p & f2)
Workbooks(f2).Worksheets(1).Columns(2).Copy Workbooks(f1).Worksheets(1).Columns(3).Offset(0, 1)
Workbooks(f2).Close False
Workbooks(f1).Close True


   
    End If
   
    f2 = Dir
    Loop


f1 = Dir


Loop Until f1 = ""

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub


为什么f1=dir这一句出错误,麻烦大神帮忙看一下吧。最近急用。
谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 05:08 , Processed in 0.031912 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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