Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

工作中,多個工作簿的數據合併至一個工作溥中是最痛苦的,使用複製粘貼太耗費時間,還容易出錯

Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

今天教大家3個方法,輕鬆解決合併工作簿的問題

1、csv文件,使用bat代碼法

這種方法是有限制的,必須是csv格式的Excel文件,很多公司軟件裡面導出的格式是這種的CSV格式的就可以使用此方法

  1. 新建一個文本文檔,然後輸入代碼copy *.csv 合併.csv,關閉保存
  2. 重命名該文本文檔,將文件的後綴txt更改成bat格式
  3. 雙擊運行這個bat文件,便自動的生成了一個新的合併.csv文件

合併的這個CSV文件就把所有單個的匯聚在一塊,如果首行都有標題行,可以進行篩選刪除再處理。

Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

2、普通Excel文件,vba代碼法

上面的方法是對於csv格式的文件才能使用的,如果是普通的xls或xlsx格式的話,就不適用了,這個時候,可以使用VBA代碼法

  1. 新建一個工作表,然後在開發工具選項卡下,點擊VisualBasic,然後輸入一段代碼
  2. 點擊開發工具上方的宏,運行這段宏,便可以彙總所有的數據了
Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

其中的代碼如下:

Sub 合併目錄所有工作簿全部工作表()
Dim MP, MN, AW, Wbn, wn
Dim Wb As Workbook
Dim i, a, b, d, c, e
Application.ScreenUpdating = False
MP = ActiveWorkbook.Path
MN = Dir(MP & "\\" & "*.xls")
AW = ActiveWorkbook.Name
Num = 0
e = 1
Do While MN <> ""
If MN <> AW Then
Set Wb = Workbooks.Open(MP & "\\" & MN)
a = a + 1
With Workbooks(1).ActiveSheet
For i = 1 To Sheets.Count
If Sheets(i).Range("a1") <> "" Then
Wb.Sheets(i).Range("a1").Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)
d = Wb.Sheets(i).UsedRange.Columns.Count
c = Wb.Sheets(i).UsedRange.Rows.Count - 1
wn = Wb.Sheets(i).Name
.Cells(1, d + 1) = "表名"
.Cells(e + 1, d + 1).Resize(c, 1) = MN & wn
e = e + c
Wb.Sheets(i).Range("a2").Resize(c, d).Copy .Cells(.Range("a1048576").End(xlUp).Row + 1, 1)
End If
Next
Wbn = Wbn & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MN = Dir
Loop
Range("a1").Select
Application.ScreenUpdating = True
MsgBox "共合併了" & a & "個工作薄下全部工作表。如下:" & Chr(13) & Wbn, vbInformation, "提示"
End Sub

3、使用PQ方法(適用於Excel2016及以上)

pq法不需要使用長長的代碼,製作的過程如下

  1. 在數據選項卡下,新建查詢,從文件,從文件夾,選中存放數據的文件夾,加載編輯
  2. 在彈出的PQ查詢器中,添加列,自定義列,輸入公式:Excel.Workbook([Content],true)
  3. 在彈出的自定義列中進行篩選,只選擇data
  4. 繼續篩選,這次所有的列都進行保留
  5. 在菜單中,關閉並上載至Excel表格,刪除不需要的數據區域即可
Excel多個工作簿合併到一個工作簿,3個方法輕鬆搞定

下次再遇到需要合併工作簿的時候,不用去複製粘貼了,這3個方法,你更喜歡用哪個方法呢?動手試試吧~不會的話就先收藏起來,以後用得上~


分享到:


相關文章: