Есть несколько файлов ексель. Структура всех файлов одинаковая.
В каждом файле 7 листов с одинаковым названием, вот такие:
на каждом листе таблицы с разными данными. Названия столбцов у таблицах во всех файлах на листах также одинаковые.
Нужно со всех файлов с каждого листа перенести данные из таблиц в один файл. То есть берем заголовок столбцов с одного файла и просто переносим данные все со всех файлов с каждой таблицы друг под другом.
Нашел макрос который переносит со всех файлов данные в один файл, но он просто копирует листы целиком, а не обьеденяет данные с листов с одинаковым названием на одном листе. Может можно код этого макроса подправить, чтобы он не копировал листы, а просто переносил все данные в один лист по названию листа.
Вот код макроса:
Заранее благодарен за помощь.
В каждом файле 7 листов с одинаковым названием, вот такие:
на каждом листе таблицы с разными данными. Названия столбцов у таблицах во всех файлах на листах также одинаковые.
Нужно со всех файлов с каждого листа перенести данные из таблиц в один файл. То есть берем заголовок столбцов с одного файла и просто переносим данные все со всех файлов с каждой таблицы друг под другом.
Нашел макрос который переносит со всех файлов данные в один файл, но он просто копирует листы целиком, а не обьеденяет данные с листов с одинаковым названием на одном листе. Может можно код этого макроса подправить, чтобы он не копировал листы, а просто переносил все данные в один лист по названию листа.
Вот код макроса:
Код |
---|
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Не выбрано ни одного файла!" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub |
Заранее благодарен за помощь.