-
1 # 使用者5688515724080
-
2 # 楠少為你戰天下669
新建一個資料夾,將需要合併的excel文件複製到該文件目錄下。 2/7新建一個EXCEL空白文件,滑鼠移動到在sheet工作表上單擊右鍵,選擇“檢視程式碼”選項,進入VBA控制檯。 3/7在選單欄點選“插入”選單,選擇“模組”選項,進入模組編輯介面。 4/7在編輯框中複製以下程式碼,注意符號,需是英文狀態下。"功能:把多個excel工作簿的第一個sheet工作表合併到一個excel工作簿的多個sheet工作表,新工作表的名稱等於原工作簿的名稱Sub Books2Sheets() "定義對話方塊變數 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) "新建一個工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 Then "定義單個檔案變數 Dim vrtSelectedItem As Variant "定義迴圈變數 ,開始檔案檢索,開啟被合併工作簿 ,複製工作表,把新工作簿的工作表名字改成被複制工作簿檔名,這兒應用於xls檔案, 5/7程式碼輸入後,點選選單項中“執行”,選擇“執行子過程”選項,或者按下F5快捷鍵,執行程式碼。 6/7執行程式碼後,會彈出文件選擇介面,找到新建資料夾的路徑,選擇你所需要合併的文件,選擇文件後,點選“開啟”,程式碼正在執行,執行時間視文件數目而定。 7/7程式碼段執行結束後,就會出現已經合併完成的excel文件介面,新工作表的名稱等於原工作簿的名稱。
-
3 # 使用者8316781897443
1、新建一個資料夾、將要合併的表格放到裡面、新建一個表格、用excel開啟、右擊Sheet1
2、選擇檢視程式碼(PS:excel有著一項,WPS沒有)
3、將下列程式碼複製到文字框中:
Sub 合併當前目錄下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName ""
If MyName AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合併了" & Num & "個工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
回覆列表
謝邀。給一個相對通用的方法。前提:1. 一個目錄裡有多個Excel檔案(WorkBook)2.每個檔案中有多個Sheet,數量不定3.每個Sheet的列定義相同,行數相同,列數量不定舉例:(其中data_1還有一個sheet,未顯示)程式碼:
程式碼本身是自明的,基本原理是遍歷所有xlsx檔案,逐一開啟,複製資料。執行結果是這樣的: