如何将一个EXCEL工作薄里100张sheet数据十秒钟合并成一个EXCEL表?

何雪旋


大家好,我是职场办公小达人,很高兴为您解答!

在工作中,我们很多时候要面对很多个工作簿里的数据,为了方便统计,需要将所有工作簿的内容合并到一起后再进行按需分析,下面介绍一个方法可以快速将很多张sheet中的数据合并到一个sheet中,让我们一起来看看吧~

1、打开有多个工作簿的excel表格,按住“Alt+F11”,依次选择“插入”、“模块”。

2、输入以下代码,依次点击【运行】、【运行子过程/用户窗体】,即可生成合并后的sheet了。

Option Explicit

Sub hbgzb()

Dim sh As Worksheet, flag As Boolean, i As Integer, hrow As Integer, hrowc As Integer

flag = False

For i = 1 To Sheets.Count

If Sheets(i).Name = "合并数据" Then flag = True

Next

If flag = False Then

Set sh = Worksheets.Add

sh.Name = "合并数据"

Sheets("合并数据").Move after:=Sheets(Sheets.Count)

End If

For i = 1 To Sheets.Count

If Sheets(i).Name <> "合并数据" Then

hrow = Sheets("合并数据").UsedRange.Row

hrowc = Sheets("合并数据").UsedRange.Rows.Count

If hrowc = 1 Then

Sheets(i).UsedRange.Copy Sheets("合并数据").Cells(hrow, 1).End(xlUp)

Else

Sheets(i).UsedRange.Copy Sheets("合并数据").Cells(hrow + hrowc - 1, 1).Offset(1, 0)

End If

End If

Next i

End Sub


以上就是快速合并多个sheet的方法,学会了吗?如果你有好的方法,欢迎评论一起学习,我是职场办公小达人,喜欢的话别忘记点赞哦~


职场办公小达人


下面提供VBA的另外一种写法。您只需要打开自己需要合并的EXCEL,把代码粘贴到visual basic编辑器中。代码就会自动将各个Sheet的内容合并到一张表里。并且会新建一个EXCEL存在在该源文件的同级目录下。命名采用日期+时间+汇总表的命名方式。如果源数据有变,重新合并一下就可以,没有任何其他的条件。比较方便。可以先看下我录的动图:


直接使用请粘贴如下的代码:


Sub Run()

Dim tar_wb As Workbook

Set tar_wb = CreateWorkbook

Call MergeContent(tar_wb)

End Sub

'函数名: CreateWorkbook

'接受参数:无

'返回值:Workbook(返回创建的Workbook)

'说明:创建一个Excel文件,存放合并的数据

Private Function CreateWorkbook() As Workbook

Dim fileName As String

Dim filePath As String

Dim nowDate As String

nowDate = CDate(Now())

nowDate = Replace(nowDate, ":\

Excel小助手


这个问题使用vba就很好处理了,10秒可以汇总几百个表没有问题的。

附上代码如下,直接可以使用。

Sub Allcopy()

Dim rg As Range

Dim sh As Worksheet

Dim irow, jcol

Sheets("总表").Range("2:1048576").Clear

For Each sh In Worksheets

With Sheets("总表")

If sh.Name <> "总表" Then

Set rg = sh.UsedRange.Offset(1, 0)

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

rg.Copy .Cells(irow, 1)

End If

End With

Next

end sub