如何遍歷目錄中的文件并將數據復制到Excel中的主表中?
假設一個文件夾中有多個Excel工作簿,并且您想循環瀏覽所有這些Excel文件,并將數據從指定范圍的同名工作表中復制到Excel中的主工作表中,該怎么辦? 本文詳細介紹了一種實現方法。
循環瀏覽目錄中的文件,然后使用VBA代碼將數據復制到主表中
循環瀏覽目錄中的文件,然后使用VBA代碼將數據復制到主表中驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Firefox 和 Safari!每天節省50%的時間,并減少數千次鼠標單擊!如果要將范圍A1:D4中的指定數據從某個文件夾中的所有工作簿工作表1復制到母版工作表,請執行以下操作。
1.在工作簿中,您將創建一個主工作表,然后按 其他 + F11 鍵打開 Microsoft Visual Basic應用程序 窗口。
2.在 Microsoft Visual Basic應用程序 窗口中,單擊 插頁 > 模塊。 然后將下面的VBA代碼復制到代碼窗口中。
VBA代碼:循環瀏覽文件夾中的文件并將數據復制到主表中
Sub Merge2MultiSheets()Dim xRg As RangeDim xSelItem As VariantDim xFileDlg As FileDialogDim xFileName, xSheetName, xRgStr As StringDim xBook, xWorkBook As WorkbookDim xSheet As WorksheetOn Error Resume NextApplication.Displayalerts = FalseApplication.EnableEvents = FalseApplication.ScreenUpdating = FalsexSheetName = "Sheet1"xRgStr = "A1:D4"Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)With xFileDlgIf .Show = -1 ThenxSelItem = .SelectedItems.Item(1)Set xWorkBook = ThisWorkbookSet xSheet = xWorkBook.Sheets("New Sheet")If xSheet Is Nothing ThenxWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"Set xSheet = xWorkBook.Sheets("New Sheet")End IfxFileName = Dir(xSelItem & "*.xlsx", vbNormal)If xFileName = "" Then Exit SubDo Until xFileName = ""Set xBook = Workbooks.Open(xSelItem & "" & xFileName)Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)xFileName = Dir()xBook.CloseLoopEnd IfEnd WithApplication.Displayalerts = TrueApplication.EnableEvents = TrueApplication.ScreenUpdating = TrueEnd SubCopy備注:
1)。 在代碼中,“A1:D4“和”Sheet1”表示將所有Sheet1的A4:D1范圍內的數據復制到主表中。 還有“新表”是新創建的母版表的名稱。2)。 特定文件夾中的Excel文件不應打開。3。 按 F5 鍵來運行代碼。
4.在開幕 瀏覽 窗口,請選擇包含您要循環瀏覽的文件的文件夾,然后單擊 OK 按鈕。 看截圖:
然后,在當前工作簿的末尾創建一個名為“ New Sheet”的主工作表。 工作表中列出了所選文件夾中所有Sheet1的A4:D1范圍內的數據。
相關文章:如何在Excel中復制具有行高和列寬的單元格數據?最佳辦公生產力工具
將小時轉化為分鐘 Kutools for Excel!準備好增強您的 Excel 任務了嗎? 利用的力量 Kutools for Excel - 您終極的節省時間的工具。 簡化復雜的任務并像專業人士一樣瀏覽數據。 以閃電般的速度體驗 Excel!
為什么需要 Kutools for Excel