何雪旋
大家好,我是職場辦公小達人,很高興為您解答!
在工作中,我們很多時候要面對很多個工作簿裡的數據,為了方便統計,需要將所有工作簿的內容合併到一起後再進行按需分析,下面介紹一個方法可以快速將很多張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