如何将一个EXCEL中的多个SHEET中内容合并到一个SHEET中

 我来答
云淡风轻微课堂
2018-06-05 · TA获得超过1364个赞
知道小有建树答主
回答量:462
采纳率:100%
帮助的人:30.8万
展开全部

5分钟学会在Excel中如何把多个工作表合并成一个表 N常用的技能

流行词解说
2020-05-19 · 材料研发工程师
流行词解说
材料研发工程师
采纳数:295 获赞数:7109
海外留学,东丽中国研究院技术中心的技术支持

向TA提问 私信TA
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WPS官方
2019-11-08 · 旨在提供办公软件的问答帮助。
WPS官方
金山办公软件为金山软件集团子公司,主要研发并运营WPS系列办公软件。WPS是我国自主知识产权的民族软件代表,自1988年诞生以来,WPS Office已经成为全世界最知名的办公软件之一。
向TA提问
展开全部

以WPS 2019版本为例:

关于如何将一个EXCEL中的多个SHEET中内容合并到一个SHEET中,您可使用WPS参考下述步骤完成操作:

1、打开「表格(Excel)」文档;

2、点击「数据-合并表格-多个工作表合并成一个工作表」;

3、勾选需合并的工作表即可。

提示:在设置合并工作表时也可添加其他「表格(Excel)」文档来选择其他文档的工作表来合并。

  • 官方电话
  • 官方服务
    • 官方网站
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvfeng308
2017-02-08 · TA获得超过779个赞
知道小有建树答主
回答量:490
采纳率:50%
帮助的人:153万
展开全部

新建一个总表,准备汇总

Alt+F11,VBA快捷键,在弹出的新界面中,左键双击坐标的名为”总表“的工作表,使后续的代码是复制到这个工作表中。

在右边的空白区域,复制下面的代码:

Sub main()

For Each sh In Sheets

If sh.Name <> "总表" Then

i = sh.Range("D65536").End(3).Row

k = Range("A65536").End(3).Row

sh.Range("A2:D" & i).Copy Range("A" & k + 1)

End If

Next

End Sub

代码详解:1.Sub main()——其中Sub 跟括号是固定的,main是宏名,可以随便更改(其实完全没有必要多此一举,这里可以不做任何修改)2.For Each sh In Sheets——这是遍历全部的工作表,这里就要注意,如果你的工作表中包含一些,不需要汇总数据的工作表,那么就需要将源数据表备份一份,然后将不需要汇总数据的工作表都删除掉,只剩下总表以及需要汇总数据的工作表(当然,还有其他办法,这里只讲解最简单地做法)3.If sh.Name <> "总表" Then——这里是判断工作表的名字是不是”总表“,如果是总表,就不汇总数据,本例中总表的名字就是”总表“,如果你的工作表中,总表名字是其他的,就将这里的”总表“改为你的工作总表明细;4.i = sh.Range("D65536").End(3).Row——这里要注意了"D65536",是为了获得最后一个不为空的行的行号,这里用了D列,因为本例中的D列是有数据的

,在实际的使用过程中,一定要选择一个最后一行有数据的列,否则不能获得最大行号(假如只有2列,那么这里的D可以改为B或者A)5.k = Range("A65536").End(3).Row——这里是获得总表的最大行号,以便复制的数据,能够依次往下粘贴;(这里的A65536跟上面提到的是一个道理,总表中的A列最后一行不是空的)6.sh.Range("A2:D" & i).Copy Range("A" & k + 1)——这里要注意“A2:D”&i是要复制的区域,因为本例中只有A-D列,而且数据是从第2行开始的,所以这里是A2:D,那假如是从E列第10行开始,到Z列结束的区域,就应该改为E10:Z;Range("A" & k + 1)——这里是从总表的A列开始粘贴,假如是从D列开始,那么这里的A改为D即可7.End If   Next   End Sub——这些是结束判断、继续循环和程序结束,都不需要更改。

保存执行代码

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaozhesheng5
2017-02-07 · TA获得超过1038个赞
知道小有建树答主
回答量:436
采纳率:75%
帮助的人:170万
展开全部

新建一个Sheet,命名为“汇总”(名字可以随便改)。然后按“Alt+F11”打开VBA编辑窗口,在左侧对应的Sheet“汇总”上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。

Sub hz() 

Dim bt, i, r, c, n, first As Long 

bt = 1 '表头有几行,这里的1就改成几 

Cells.Clear 

For i = 1 To Sheets.Count 

If Sheets(i).Name <> ActiveSheet.Name Then 

If first = 0 Then 

c = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column 

Sheets(i).Range("A1").Resize(bt, c).Copy Range("A1") 

n = bt + 1: first = 1 

End If 

r = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row 

Sheets(i).Range("A" & bt + 1).Resize(r - 1, c).Copy Range("A" & n) 

n = n + r - bt 

End If 

Next 

End Sub

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式