excel将多个工作表数据内容合并到一个工作表

方法一

  • 01

    利用VBA将数据区域不定的多个工作表数据快速合并到一个工作表。 分别有工作表1、2、3数据区域,如下图所示:

  • 02

    按ALT+F11打开VBE编辑器,在工程窗口下的Microsoft Excel对象右键-插入-模块,新建一个模块1。

  • 03

    输入如下代码: OptionExplicit Subhbgzb() DimshAsWorksheet,flagAsBoolean,iAsInteger,hrowAsInteger,hrowcAsInteger flag=False Fori=1ToSheets.Count IfSheets(i).Name=”合并数据”Thenflag=True Next Ifflag=FalseThen Setsh=Worksheets.Add sh.Name=”合并数据” Sheets(“合并数据”).Moveafter:=Sheets(Sheets.Count) EndIf Fori=1ToSheets.Count IfSheets(i).Name<>”合并数据”Then hrow=Sheets(“合并数据”).UsedRange.Row hrowc=Sheets(“合并数据”).UsedRange.Rows.Count If hrowc = 1 Then Sheets(i).UsedRange.CopySheets(“合并数据”).Cells(hrow,1).End(xlUp) Else Sheets(i).UsedRange.CopySheets(“合并数据”).Cells(hrow+hrowc-1,1).Offset(1,0) EndIf EndIf Nexti EndSub

  • 04

    按ALT+F8打开宏对话框窗口,鼠标单击执行hbgzb宏。

  • 05

    实现如图所示效果:

  • 06

    说明:本段VBA代码由于将编辑过的区域作为源数据区域,顾无论该数据源有无数据,只要曾经编辑过皆做为源数据源,做拷贝处理。

方法二

  • 01

    适用于工作表数量不多,数据量不大的情况。 如下图所示,我们可以发现,各个地区的工作表模板都是一致的。

  • 02

    可以通过在汇总表中使用【=工作表!单元格】获取数据,并通过向右、向下填充数据行。

  • 03

    当一个工作表数据填充完成后,往下的数据行值为0,此时,切换第二个工作表继续进行填充,直至填充完毕。

  • 04

    结果如下图所示:

方法三

  • 01

    适用于工作表数量多,数据量大的情况。 新建名称DQ,引用位置输入公式【=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND(“]”,GET.WORKBOOK(1)))】,用于提取多个工作表名称。

  • 02

    在汇总表中增加辅助列,输入公式【=INDEX(DQ,INT((ROW(A2)-1)/10)+1)】,往下填充,每个工作表名称被引用10行。 注意:被引用行按需调整,如每个工作表名称需生成50行,调整公式中的10,改为50即可。

  • 03

    填充第一行数据,输入公式【=INDIRECT($A2&”!”&ADDRESS(COUNTIF($A$2:$A2,$A2)+1,COLUMN(A2)))】往右填充,完成第一行的填充。 说明:通过ADDRESS函数,定位到第二行第一列,即A2单元格;整个公式的意思是引用工作表【广州】中的A2单元格,值为“广州”。

  • 04

    往下填充,当一个工作表数据填充完成后,往下的数据行值为0,批量删除值为0的行即可。

Windows10 PIN密码忘记了怎么办?
« 上一篇 2024-12-11 14:38
怎么删除不需要的输入法?(怎么把不需要的输入法删掉)
下一篇 » 2024-12-11 14:38