Excel宏功能快速合并多个工作表的详细教程
创作时间:
作者:
@小白创作中心
Excel宏功能快速合并多个工作表的详细教程
引用
1
来源
1.
https://www.jiandaoyun.com/article/post/45422.html
在处理大量数据时,经常需要将多个Excel工作表合并到一个工作表中进行数据分析。手动复制粘贴不仅效率低下,还容易出错。本文将详细介绍如何使用Excel的宏功能快速实现多个工作表的合并,让数据处理工作事半功倍。
操作步骤
原始数据准备:原始数据所在工作簿包含多个格式相同的工作表,每个工作表的内容不同,例如不同人名或不同部门的数据。
新建工作簿:在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。
进入VBA编辑界面:按
Alt+F11进入VBA代码编辑和调试界面。插入模块:根据提示插入一个模块。
粘贴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
插入窗体控件:在“首页”工作表中插入一个窗体控件,并指定宏为插入的代码名称。
选择原始数据工作簿:点击“首页”工作表中插入的按钮,浏览到原始数据工作簿。
选择数据范围:用鼠标选择要合并的数据范围。注意,每个工作表数据可能不一样,可以选择一个较大的范围,例如A1:D100。
运行代码:点击确定按钮,代码运行完毕后,所有数据将合并到“合并汇总表”中。A列的文本说明右侧的数据来自于原始数据表的哪个工作表。
删除空行:选中全部数据区域,执行自动筛选。选择其中一个字段,选择“空白”和标题内容,然后删除筛选出来的无用行。
完成合并:删除A列整列,完成数据合并。
通过以上步骤,可以快速将多个Excel工作表合并到一个工作表中,大大提高了数据处理的效率。希望这个方法能帮助大家更好地处理Excel数据。
热门推荐
房地产的增值与财富积累
春天到了,你容易感到冲动和不安,这是有科学依据的
快看,今年盱眙龙虾节、龙虾季准备这么做!
二战经典枪械之:鲁格P08手枪
同一药店,为啥线上线下竟同药不同价?
药店骗保的法律后果及刑罚期限探析
10万元最聪明的存钱法:稳健增值,理性投资
学前教育,从普及普惠迈向免费还有多远?南昌湾里这样干
女性尤其要注意!找不出原因的疼痛,可能与它有关,4种类型常见……
投资组合构建:根据自身情况构建合适投资组合的方法
GB31701-2015-婴幼儿及儿童纺织产品安全技术规范
孩子习惯养成关键期:3-10岁不可忽视的重要
研发费用加计扣除算法详解
自考专升本选校攻略,职业规划与院校实力双重考量
努尔哈赤:一生功绩与传奇经历
电动变焦变倍镜头的控制方式详解
人民币对美元升破7.26关口 人民币汇率止跌回稳具备多重支撑因素
勿忘历史,逃脱惩罚的九一八事件罪魁祸首,石原莞尔
老年人脑白质病的治疗
科普|金秋时节如何应对支气管炎?
投资盈利怎样进行合理分配?这种分配有哪些原则和方法?
定制家具选材攻略:如何选择适合的材料?
家具设计师需要具备的技能
湖北省十大旅游景点
早晨空腹喝黑咖啡并且不吃早餐是否可行
媒体的发展历程:从口头传播到互联网时代
js变量命名冲突怎么办
如何有效的查找js里面的错误
高乳酸血症怎么回事,怎么办
金铲铲之战名字大全:500个创意昵称任你选