问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

史上最全!Excel 如何合并多个工作表或多个工作簿?

发布网友 发布时间:2023-09-02 07:17

我来回答

2个回答

热心网友 时间:2024-03-22 00:24

Excel表格的合并分为两种情况,一种是工作表合并、一种是工作簿合并。一个Excel表格叫做工作簿,每个工作簿中的Sheet叫做工作表。

针对这两种情况的表格合并,今天我们来做个小结,看看都要哪些方法。不管你是高版本Excel还是低版本Excel,总有一种方法适合你。当然这里不考虑极端的情况,如工作表/工作簿表头不一致、列数不同等,这里默认需要合并的工作表/工作簿表头都是一致的。

一、工作表的合并

工作表的合并,顾名思义,合并同一工作簿下所有Sheets的数据,针对数据的多少,有不同的方法。

方法一:剪贴板法

如果需要合并的数据比较少,这里可以利用剪贴板。首先调出Excel剪贴板,它在开始功能区的最左边。

接着选中第一个sheet的内容,按CTRL+X快捷键,将sheet1内的所有内容剪切到剪贴板中,同样的操作,将所有sheet的内容,全部CTRL+X剪切到剪贴板。

全部剪切完成,在新建的sheet中,点击左侧剪贴板中的“全部粘贴”按钮,完成工作表的合并。

方法二:VBA法

不需要看懂代码,将代码复制粘贴到需要合并的工作簿中来,运行即可,表格合并完成。按Alt+F11两键,调出Visual Basic界面,在左侧窗口中,右键选择“插入”—“模块”,将代码粘贴进去,点击运行按钮,完成数据表合并。

明细代码如下所示(直接复制可用):

Sub合并当前工作簿下的所有工作表()

On Error Resume Next

Application.ScreenUpdating=False

Application.DisplayAlerts=False

Set st=Worksheets.Add(before:=Sheets(1))

st.Name="合并"

For Each shet In Sheets:

If shet.Name<>"合并"Then

i=st.Range("A"&Rows.Count).End(xlUp).Row+1

shet.UsedRange.Copy

st.Cells(i,1).PasteSpecial Paste:=xlPasteAll

End If

Next

Application.DisplayAlerts=True

Application.ScreenUpdating=True

MsgBox"已完成"

End Sub

方法三:Power Query

Power Query是Excel2016及其以上才有的功能,如果你的Excel版本较低,强烈建议安装较高版本的。

依次点击【数据】—【获取数据】—【自文件】—【从工作簿】,选中需要合并的工作簿,点击【导入】。

之后进入到导航器界面,选中文件夹,点击【转换数据】

进入Power Query编辑界面,取消勾选不需要的表名,之后点击Data列扩展数据,点击确定,完成数据表的合并,最后一步,点击左上角的“关闭并上载”即可将数据加载到Excel当中去。

剪贴板法适合少量表格的合并,VBA方法适合任意版本的Excel版本的数据合并,Power Query法只适合Excel2016及以上版本,如果其他版本想用这个功能,需要单独下载插件。

二、工作簿的合并

工作簿的合并指合并在同一个文件下所有的Excel工作簿。

方法一:Windows批处理命令

首先我们需要将Excel表格文件另存为CSV文件,这一步可以通过VBA批量操作。打开任意工作簿,调出Visual Basic界面,输入以下代码(如何插入代码上面有介绍,这里不再赘述):

Sub xlsxtocsv()

Application.ScreenUpdating=False

Application.DisplayAlerts=False

t=ActiveWorkbook.Name

mypath=ActiveWorkbook.Path&"\"

myfile=Dir(mypath&"*.xlsx")

Do Until Len(myfile)=0

If myfile<>t Then

Workbooks.Open Filename:=mypath&myfile

ActiveWorkbook.SaveAs Filename:=mypath&Left(myfile,InStr(myfile,".")-1)&".csv",FileFormat:=xlCSV

End If

If myfile<>t Then ActiveWorkbook.Close

myfile=Dir

Loop

Application.DisplayAlerts=True

Application.ScreenUpdating=True

End Sub

执行完毕后,将会将每一个表格生成一份csv文件。

接着新建一个txt文本文档,在其中输入:copy*.csv all.csv。

之后保存文件,将文件后缀名修改为bat文件;或者另存为,另存为界面需要注意两点:第一点:文件名记得带.bat的后缀;第二点:保存类型选择【所有文件】。

点击确定,就会出现一个可执行文件,类型为【windows批处理文件】。

双击此文件之后,当前文件夹内的所有csv文件全部被合并在一起。此方法只适用于csv文件,不适用于xls/xlsx文件(也就是Excel表格),所以我们在第一步,将所有的Excel文件转化成csv格式。

方法二:VBA法

VBA运行方法都是一致的。

新建一个工作簿,打开,进入Visual Basic界面,输入以下代码,点击运行,等待程序完成之后,工作簿完成合并。

Sub合并当前目录下所有工作簿()

Dim Wb As Workbook

Application.ScreenUpdating=False

MyPath=ActiveWorkbook.Path

MyName=Dir(MyPath&"\"&"*.xlsx")

AWbName=ActiveWorkbook.Name

Do While MyName<>""

If MyName<>AWbName Then

Set Wb=Workbooks.Open(MyPath&"\"&MyName)

c=ThisWorkbook.Sheets("sheet1").UsedRange.SpecialCells(xlCellTypeLastCell).Row

If c=1 Then'防止合并的工作簿第一行空着

c=0

End If

ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets("sheet1").Cells(c+1,1)'合并工作簿的第一个sheet名字为:sheet1

Wb.Close False

End If

MyName=Dir

Loop

Application.ScreenUpdating=True

MsgBox"已完成"

End Sub

方法三:Power Query

依次点击【数据】—【获取数据】—【自文件】—【从文件夹】,选中需要合并的文件夹,点击【打开】,最后点击【转换数据】。

进入Power Query编辑界面,点击【Content】列,这里选择【参数1】,点击【确定】

接着点击【Data】列扩展数据,点击【确定】,完成工作簿的合并,针对不需要的列可以右键删除,最后关闭并上载数据到Excel表格即可。

Windows批处理适用于CSV文件,VBA适用于任意版本(如果Excel是2007以前版本,需要将代码中的XLSX修改成XLS)、Power Query适用于高版本Excel,各有所长。

热心网友 时间:2024-03-22 00:24

Excel 合并多个工作表或多个工作簿的方法有很多种,下面将详细介绍几种常用的方法:
1. 合并多个工作表(在同一个工作簿中):
方法一:剪贴板法
步骤:
1. 打开需要合并的 Excel 工作簿,选中需要合并的所有工作表;
2. 按下 Ctrl+C,将选中的工作表内容剪切到剪贴板;
3. 创建一个新的工作表,按下 Ctrl+V,将剪贴板中的内容粘贴到新的工作表中。
方法二:复制和粘贴法
步骤:
1. 打开需要合并的 Excel 工作簿,选中需要合并的所有工作表;
2. 点击“复制”按钮,将选中的工作表内容复制到剪贴板;
3. 创建一个新的工作表,点击“粘贴”按钮,将剪贴板中的内容粘贴到新的工作表中。
方法三:使用“合并工作表”功能
步骤:
1. 打开需要合并的 Excel 工作簿,选中需要合并的所有工作表;
2. 点击“数据”选项卡,找到“合并工作表”功能,点击并选择“合并多张工作表”;
3. 在弹出的对话框中,选择“合并到一个新的工作表”,然后点击“确定”。
2. 合并多个工作簿(在不同的 Excel 文件中):
方法四:使用“合并工作簿”功能
步骤:
1. 打开需要合并的 Excel 工作簿,点击“数据”选项卡,找到“合并工作簿”功能,点击并选择“合并工作簿”;
2. 在弹出的对话框中,选择“合并多个工作簿”,然后点击“添加文件”按钮,选择需要合并的文件;
3. 选择合并方式,如将所有工作表合并到一个新的工作簿中,点击“确定”。
方法五:使用 VBA 宏代码
步骤:
1. 打开 Excel,按下 Alt+F11,打开 VBA 编辑器;
2. 点击“插入”菜单,选择“模块”,在模块中输入以下代码:
```vba
Sub 合并工作簿 ()
Dim MyPath As String, FileName As String
Dim Wkb As Workbook
Dim Sht As Worksheet
Application.ScreenUpdating = False
MyPath = InputBox("请输入需要合并的文件所在的文件夹路径:", "提示")
FileName = Dir(MyPath & Application.PathSeparator & "*.xls*")
Do While FileName <> ""
Set Wkb = Workbooks.Open(MyPath & Application.PathSeparator & FileName)
For Each Sht In Wkb.Sheets
Sht.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next Sht
Wkb.Close False
FileName = Dir()
Loop
Application.ScreenUpdating = True
End Sub
```
3. 运行 VBA 代码,按照提示输入文件夹路径,即可将指定文件夹中的所有 Excel 文件合并到一个新的工作簿中。
以上就是 Excel 合并多个工作表或多个工作簿的常用方法,希望对您有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
13岁一直到18岁晚上经常熬夜会有什么影响 具象表现素描内容简介 ...| 从14世纪文艺复兴到20世纪具象表现绘画 · 168幅画 · 图解西方... 【漫画赏析】比喻具象化——《孤高之人》手法分析 具象美术作品有哪些 具象艺术艺术家介绍 话说 曾经有个演唱会 是初音未来演唱会 39祭 谁知道微信聊天记录删掉了,还能恢复过来吗?有什么软件可以恢复吗?不... 六爻。测缘分。测婚姻 礼仪起源于祭祀的证据是什么? 二手车贷款需要什么手续费吗? 大财没有小财不断什么意思 大财没有小财不断是小康吗 宅在家里的说说 Windows10会自动安装游戏/应用怎么办?Win10禁止系统自动安装游戏/... 圭贤在强心脏说他把拉面煮成汉江拉面 什么意思啊 什么事汉江拉面_百 ... 宝宝几个月会吃脚 在园林中如何能让影子动起来 宝宝十个月100毫升的泰诺一次喝多少? 一分钟大概走多少步 请问 银行借记卡的钱 不还会怎么样 我的额度是2000的 我不想还了 ...指相扣在一起,就像被人绑了一样,。,。。怎么这么可怕, 我手上拿的东西叫什么名字。 求另一半图片~感激不尽&#xF64F;? 结婚公证书寄到台湾海基会每次验证有影响吗 15款长安逸动可以把cd换成平板么? 长安逸动不改原来的线路能把CD换成DVD吗 ...呢对于我来说每天都是痛苦的煎熬,我要怎样离开这个世界 给我一个活下去的理由 或者一个离开这个世界的方法 我什么时候才可以离开人世间的( ) 什么代表我国负责国际货币基金组织的贷款事宜。 梦见建立非洲开发银行协定的预兆 男生在什么情况下,会对自己女朋友讲“一辈子不放手”? funny和lovely+和year读音是一样的吗? 40岁创业做什么 转身是什么节目 已知椭圆周长为844.8,求长半轴和短半轴。公式为L=2×3.14×b+4(a-b... 已知椭圆面积、周长 如何求得长短半轴的值?给出答案即可 知道椭圆的周长2.345m和长轴0.85m,怎么算椭圆的短轴,就想以此来画个椭 ... 部队上尉级别正连年收入有20万吗? 奶油意面做法 奶油白酱蝴蝶意面 猫咪额头摸起来有沙沙的感觉,感觉皮层底下有鼓起来的泡一样,好吓人,这... 用刮痧板刮额头感觉一粒一粒的是什么情况啊? 北京华夏银行灯市口支行按揭提前还款是怎么个流程 需要提前多久预约... ...内存被释放,再次点击应用的时候,是完全重新启动吗?我的一 朝服衣冠窥镜谓其妻曰其的用法 垂径定理的证明方法 垂径定理推论证明方法 想知道: 曲靖市 12路公交线路的信息