Excel VBA小程序04- 合并同文件夹下多工作簿中同名工作表并生成汇总表格

使用VBA编写的小程序,能够合并同一文件夹下多个工作簿中的同名工作表,并生成汇总表格。更新后,程序能跳过不含指定工作表的工作簿,并允许用户自定义要合并的工作表名,最终结果会添加到同一工作表中,还增加了目录页功能。
摘要由CSDN通过智能技术生成

参考:
VBA 合并同文件夹下多工作簿中同名工作表到 一工作簿一工作表

2022/1/19 更新
跳过不含指定sheet的工作薄并汇总。

Sub Build_Sheet_List()
    Dim sht As Worksheet, i As Long, strName As String
    With Columns(1)
        .Clear '清空A列数据
        .NumberFormat = "@" '设置文本格式
    End With
    For i = 1 To Sheets.Count '索引法遍历工作表集合
        strName = Sheets(i).Name '表名
        Cells(i, 1).Value = strName
        ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _
                SubAddress:="'" & strName & "'!a1", TextToDisplay:=strName
    Next
End Sub

Sub all_excel_files()
    Dim path As String, filename As String
    Dim w As Workbook, ws As Workbook
    With Application.FileDialog(msoFileDialogFolderPicker)
    '-------------------取得用户选择的文件夹路径---------------------------
    If .Show Then path = .SelectedItems(1) Else Exit Sub
    End 
  • 2
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
VBA,要汇总同一文件夹多个工作簿同名工作,可以按照以下步骤进行: 首先,创建一个新的工作簿作为汇总结果。可以使用以下代码创建新的工作簿: ```vba Dim summaryWorkbook As Workbook Set summaryWorkbook = Workbooks.Add ``` 接下来,获取指定文件夹的所有文件名。可以使用以下代码获取文件夹路径以及文件夹的所有文件名: ```vba Dim folderPath As String Dim fileName As String Dim folder As Object Dim file As Object folderPath = "指定文件夹路径" Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath) For Each file In folder.Files fileName = file.Name '在此处继续编写代码 Next file ``` 然后,打开每个工作簿,并将相应的同名工作复制到汇总结果工作簿。可以使用以下代码实现: ```vba Dim sourceWorkbook As Workbook Dim sourceWorksheet As Worksheet Dim destWorksheet As Worksheet For Each file In folder.Files fileName = file.Name Set sourceWorkbook = Workbooks.Open(folderPath & "\" & fileName) For Each sourceWorksheet In sourceWorkbook.Worksheets '检查是否有同名工作 If WorksheetExists(sourceWorksheet.Name, summaryWorkbook) Then Set destWorksheet = summaryWorkbook.Worksheets(sourceWorksheet.Name) sourceWorksheet.Copy After:=destWorksheet End If Next sourceWorksheet sourceWorkbook.Close SaveChanges:=False Next file ``` 最后,在完成复制后,保存并关闭汇总结果工作簿: ```vba summaryWorkbook.SaveAs folderPath & "\汇总结果.xlsx" summaryWorkbook.Close SaveChanges:=False ``` 以上是利用VBA汇总同一文件夹多个工作簿同名工作的方法。通过遍历文件夹工作簿,打开每个工作簿并复制同名工作汇总结果工作簿,最后保存并关闭汇总结果工作簿
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值