Как перебирать файлы в каталоге и копировать данные в мастер-лист в Excel?
Предположим, что в папке есть несколько книг Excel, и вы хотите перебрать все эти файлы Excel и скопировать данные из указанного диапазона листов с одинаковыми именами в главный рабочий лист в Excel, что вы можете сделать? В этой статье подробно описывается метод достижения этой цели.
Перебирайте файлы в каталоге и копируйте данные в мастер-лист с кодом VBA
Перебирайте файлы в каталоге и копируйте данные в мастер-лист с кодом VBA
Если вы хотите скопировать указанные данные в диапазоне A1: D4 со всех листов 1 книг в определенной папке на мастер-лист, сделайте следующее.
1. В книге вы создадите мастер-лист, нажмите кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте ниже код VBA в окно кода.
Код VBA: цикл по файлам в папке и копирование данных в мастер-лист
Sub Merge2MultiSheets()
Dim xRg As Range
Dim xSelItem As Variant
Dim xFileDlg As FileDialog
Dim xFileName, xSheetName, xRgStr As String
Dim xBook, xWorkBook As Workbook
Dim xSheet As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
xSheetName = "Sheet1"
xRgStr = "A1:D4"
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
With xFileDlg
If .Show = -1 Then
xSelItem = .SelectedItems.Item(1)
Set xWorkBook = ThisWorkbook
Set xSheet = xWorkBook.Sheets("New Sheet")
If xSheet Is Nothing Then
xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
Set xSheet = xWorkBook.Sheets("New Sheet")
End If
xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
If xFileName = "" Then Exit Sub
Do 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.Close
Loop
End If
End With
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Внимание:
3. нажмите F5 ключ для запуска кода.
4. В дебюте ЛИСТАТЬ СПИСКИ в окне выберите папку, содержащую файлы, которые вы будете просматривать, а затем щелкните OK кнопка. Смотрите скриншот:
Затем в конце текущей книги создается главный рабочий лист с именем «Новый лист». И данные в диапазоне A1: D4 всех Sheet1 в выбранной папке перечислены внутри рабочего листа.
Статьи по теме:
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!