何雪旋
大家好,我是职场办公小达人,很高兴为您解答!
在工作中,我们很多时候要面对很多个工作簿里的数据,为了方便统计,需要将所有工作簿的内容合并到一起后再进行按需分析,下面介绍一个方法可以快速将很多张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