工作中,多個工作簿的數據合并至一個工作溥中是最痛苦的,使用複制粘貼太耗費時間,還容易出錯
今天教大家3個方法,輕松解決合并工作簿的問題
1、csv文件,使用bat代碼法這種方法是有限制的,必須是csv格式的Excel文件,很多公司軟件裡面導出的格式是這種的CSV格式的就可以使用此方法
合并的這個CSV文件就把所有單個的彙聚在一塊,如果首行都有标題行,可以進行篩選删除再處理。
2、普通Excel文件,vba代碼法
上面的方法是對于csv格式的文件才能使用的,如果是普通的xls或xlsx格式的話,就不适用了,這個時候,可以使用VBA代碼法
其中的代碼如下:
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法不需要使用長長的代碼,制作的過程如下
下次再遇到需要合并工作簿的時候,不用去複制粘貼了,這3個方法,你更喜歡用哪個方法呢?動手試試吧~不會的話就先收藏起來,以後用得上~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!