问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Excel宏功能快速合并多个工作表的详细教程

创作时间:
作者:
@小白创作中心

Excel宏功能快速合并多个工作表的详细教程

引用
1
来源
1.
https://www.jiandaoyun.com/article/post/45422.html

在处理大量数据时,经常需要将多个Excel工作表合并到一个工作表中进行数据分析。手动复制粘贴不仅效率低下,还容易出错。本文将详细介绍如何使用Excel的宏功能快速实现多个工作表的合并,让数据处理工作事半功倍。

操作步骤

  1. 原始数据准备:原始数据所在工作簿包含多个格式相同的工作表,每个工作表的内容不同,例如不同人名或不同部门的数据。

  2. 新建工作簿:在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。

  3. 进入VBA编辑界面:按Alt+F11进入VBA代码编辑和调试界面。

  4. 插入模块:根据提示插入一个模块。

  5. 粘贴VBA代码:将以下代码粘贴到模块空白处:

Sub CombineSheetsCells()
    Dim wsNewWorksheet As Worksheet
    Dim cel As Range
    Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant
    Dim TitleRow, TitleColumn As Range
    Dim Num As Integer
    Dim DataRows As Long
    DataRows = 1
    Dim TitleArr()
    Dim Choice
    Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$
    Dim n, i
    n = 1
    i = 1
    Application.DisplayAlerts = False
    Worksheets("合并汇总表").Delete
    Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))
    wsNewWorksheet.Name = "合并汇总表"
    MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")
    If MyFileName = "False" Then
        MsgBox "没有选择文件!请重新选择一个被合并文件!", vbInformation, "取消"
    Else
        Workbooks.Open Filename:=MyFileName
        Num = ActiveWorkbook.Sheets.Count
        MyName = ActiveWorkbook.Name
        Set DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:", Type:=8)
        AddressAll = DataSource.Address
        ActiveWorkbook.ActiveSheet.Range(AddressAll).Select
        SourceDataRows = Selection.Rows.Count
        SourceDataColumns = Selection.Columns.Count
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        For i = 1 To Num
            ActiveWorkbook.Sheets(i).Activate
            ActiveWorkbook.Sheets(i).Range(AddressAll).Select
            Selection.Copy
            ActiveSheetName = ActiveWorkbook.ActiveSheet.Name
            Workbooks(ThisWorkbook.Name).Activate
            ActiveWorkbook.Sheets("合并汇总表").Select
            ActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetName
            ActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select
            Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            DataRows = DataRows + SourceDataRows
            Workbooks(MyName).Activate
        Next i
        Application.ScreenUpdating = True
        Application.EnableEvents = True
    End If
    Workbooks(MyName).Close
End Sub
  1. 插入窗体控件:在“首页”工作表中插入一个窗体控件,并指定宏为插入的代码名称。

  2. 选择原始数据工作簿:点击“首页”工作表中插入的按钮,浏览到原始数据工作簿。

  3. 选择数据范围:用鼠标选择要合并的数据范围。注意,每个工作表数据可能不一样,可以选择一个较大的范围,例如A1:D100。

  4. 运行代码:点击确定按钮,代码运行完毕后,所有数据将合并到“合并汇总表”中。A列的文本说明右侧的数据来自于原始数据表的哪个工作表。

  5. 删除空行:选中全部数据区域,执行自动筛选。选择其中一个字段,选择“空白”和标题内容,然后删除筛选出来的无用行。

  6. 完成合并:删除A列整列,完成数据合并。

通过以上步骤,可以快速将多个Excel工作表合并到一个工作表中,大大提高了数据处理的效率。希望这个方法能帮助大家更好地处理Excel数据。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号