• 转载:Excel用VBA代码一键合并汇总多个工作簿


    本文转载自:Excel用VBA代码一键合并汇总多个工作簿,省时省力必学! (baidu.com)

    有时候,你需要将几十个工作簿中的内容,快速汇总至合并至一个工作簿,如果手动一个复制粘贴,那心里有苦说不出。。。

    今天将大家用VBA一键合并,只需要几秒种,为了测试这段代码,我们新建了4个工作簿在文件夹中,数据都是模拟的,做试验

     

    一键合并代码操作如下所示:

     

    我们看原始表格数据,其中,第1个工作簿有点特殊,这个工作簿中,有两个工作表,第1个工作表的内容是:

     

    第2个工作表的内容是:

     

    第2,3,4个工作簿中都是仅有1个工作表,如下所示:

     
     
     

    通过代码,我们一键可以合并,得到结果,这个汇总的结果有两个特点

    1、最后一列,还会显示这些数据的来源是哪个工作簿,哪个表名的。

    2、原始数据中每一行的标题自动取消,只保留了一个标题。

    如下所示:

     

    在Excel菜单栏中,点击开发工具,打开VBA,输入如下代码:

     

    其中代码如下所示:

    Sub 合并目录所有工作簿全部工作表()

    Dim MP, MN, AW, Wbn, wn

    Dim Wb As Workbook

    Dim i, a, b, d, c, e

    Application.ScreenUpdating = False

    MP = ActiveWorkbook.Path

    MN = Dir(MP & "\" & "*.xls")

    AW = ActiveWorkbook.Name

    Num = 0

    e = 1

    Do While MN <> ""

    If MN <> AW Then

    Set Wb = Workbooks.Open(MP & "\" & MN)

    a = a + 1

    With Workbooks(1).ActiveSheet

    For i = 1 To Sheets.Count

    If Sheets(i).Range("a1") <> "" Then

    Wb.Sheets(i).Range("a1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)

    d = Wb.Sheets(i).UsedRange.Columns.Count

    c = Wb.Sheets(i).UsedRange.Rows.Count - 1

    wn = Wb.Sheets(i).Name

    .Cells(1, d + 1) = "表名"

    .Cells(e + 1, d + 1).Resize(c, 1) = MN & wn

    e = e + c

    Wb.Sheets(i).Range("a2").Resize(c,d).Copy .Cells(.Range("a1048576").End(xlUp).Row + 1, 1)

    End If

    Next

    Wbn = Wbn & Chr(13) & Wb.Name

    Wb.Close False

    End With

    End If

    MN = Dir

    Loop

    Range("a1").Select

    Application.ScreenUpdating = True

    MsgBox "共合并了" & a & "个工作薄下全部工作表。如下:" & Chr(13) & Wbn, vbInformation, "提示"

    End Sub

  • 相关阅读:
    WebBrowser Control(三)Privacy Alert对话框
    工具栏添加控件
    OpenGL(一)Introduction
    WebBrowser Control(四)URL Security Zones
    OpenGL(二)三维变换
    STL(二)Iterators
    string与wstring转换
    vs2005制作安装包
    唉,又是数组越界的问题!
    CString之GetBuffer、ReleaseBuffer
  • 原文地址:https://www.cnblogs.com/weixiaopeng/p/excel01.html
Copyright © 2020-2023  润新知