合并当前目录下所有工作簿的全部工作表

合并当前目录下所有工作簿的全部工作表

以2003Excel版本为例:

1.      在当前目录下新建一个空的Excel:如2017-1-2

2.      打开2017-1-2Excel文件,alt+F11 进入VB代码编辑器

3.      例:将以下代码粘贴到编辑器thisworkbook中   

Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" &"*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\"& MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1)= Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy.Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:"& Chr(13) & WbN, vbInformation, "提示"
End Sub

 

4.       关闭vb编辑器 alt+F8 调出宏工具,选中刚才创建的,点击“执行”

 

5. 完美:2017-1,2017-2就合并好了

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
合并当前文件夹下所有xlsx格式工作簿的所有工作,你可以使用VBA编程来完成。以下是一个示例代码: ```vba Sub MergeWorksheets() Dim FolderPath As String Dim FileName As String Dim wbMaster As Workbook Dim wbTemp As Workbook Dim ws As Worksheet ' 设置文件夹路径 FolderPath = "C:\YourFolderPath\" ' 替换为你的文件夹路径 ' 创建一个新的工作簿作为合并后的主工作簿 Set wbMaster = Workbooks.Add ' 循环遍历文件夹下的所有xlsx文件 FileName = Dir(FolderPath & "*.xlsx") Do While FileName <> "" ' 排除主工作簿自身 If Not FileName = wbMaster.Name Then ' 打开一个临时工作簿 Set wbTemp = Workbooks.Open(FolderPath & FileName) ' 循环遍历临时工作簿中的所有工作 For Each ws In wbTemp.Worksheets ' 将每个工作复制到主工作簿中 ws.Copy After:=wbMaster.Sheets(wbMaster.Sheets.Count) Next ws ' 关闭临时工作簿,不保存更改 wbTemp.Close SaveChanges:=False End If ' 继续遍历下一个文件 FileName = Dir Loop ' 删除主工作簿中默认的Sheet1工作 Application.DisplayAlerts = False wbMaster.Sheets("Sheet1").Delete Application.DisplayAlerts = True ' 保存合并后的工作簿 wbMaster.SaveAs FolderPath & "MergedWorkbook.xlsx" ' 替换为你想要保存的文件名和路径 ' 关闭主工作簿 wbMaster.Close SaveChanges:=False MsgBox "合并完成!" End Sub ``` 在这段代码中,你需要将`FolderPath`替换为你的文件夹路径,并根据需要调整保存合并工作簿的文件名和路径。代码将遍历文件夹下的所有xlsx文件,将每个工作复制到一个新的主工作簿中,并最终保存为一个合并后的工作簿。 请注意,在运行代码之前,请确保没有打开任何xlsx文件,以免发生冲突。此外,代码中的操作无法撤销,请务必提前备份你的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

度假的小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值