您的位置:首页 > 其它

快速合并同一个excel表中的多个sheet

2016-01-18 13:42 429 查看
  很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用excel的宏计算来解决这个问题。

一、数据准备


    


二、合并效果



三、代码

       在Sheet1上右键→查看代码,打开代码编辑器,写入如下内容:

Sub UnionSheets()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
If Sheets(i).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1   '获取当前sheet中已有的行数,从+1行开始
Sheets(i).UsedRange.Copy Cells(X, 1)    '往当前sheet中的Cells(X, 1)开始复制数据
End If
Next
Range("A1").Select '选中第一个单元格(返回到顶部)
Application.ScreenUpdating = True
MsgBox "合并完毕!", vbInformation, "提示"
End Sub
另外,将多个Excel文件合并为一个,可用如下代码来实现:
Sub combo()
Dim Wk As Workbook, Sht As Worksheet, n As Integer, MyPath, MyName
Application.ScreenUpdating = False
Application.EnableEvents = False
n = 1
MyPath = ThisWorkbook.Path & "\" '指定路径
MyName = Dir(MyPath & "\" & "*.xls") '寻找第一项
Do While MyName <> "" '开始循环
If MyName <> ThisWorkbook.Name Then
Set Wk = Workbooks.Open(MyPath & "\" & MyName)
Wk.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '此处只插个第一个sheet
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Mid(MyName, 1, Len(MyName) - 4) '重新命名sheet
'For Each Sht In Wk.Sheets '多个sheet
'Sht.Name = Format(n, "000″)
'n = n + 1
'Next
Wk.Close False
End If
MyName = Dir '查找下一个
Loop
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: