Сборка листов из разных книг в одну
Предположим, имеется куча книг Excel, все листы из которых надо объединить в один файл. Копировать руками долго и мучительно, поэтому имеет смысл использовать несложный макрос.
Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic сочетанием клавиш Alt+F11 одноименной кнопкой на вкладке Разработчик (Developer — Visual Basic), добавляем новый пустой модуль (в меню Insert — Module) и копируем туда текст вот такого макроса:
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer Application.ScreenUpdating = False 'отключаем обновление экрана для скорости 'вызываем диалог выбора файлов для импорта FilesToOpen = Application.GetOpenFilename _ (FileFilter:="All files (*.*), *.*", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "Не выбрано ни одного файла!" Exit Sub End If 'проходим по всем выбранным файлам x = 1 While x <= UBound(FilesToOpen) Set importWB = Workbooks.Open(Filename:=FilesToOpen(x)) Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) importWB.Close savechanges:=False x = x + 1 Wend Application.ScreenUpdating = True End Sub
После этого можно вернуться в Excel и запустить созданный макрос на вкладке Разработчик кнопкой Макросы (Developer — Macros) или нажав Alt+F8. Отобразится диалоговое окно открытия файла, где необходимо указать один или несколько (удерживая Ctrl или Shift) файлов, листы из которых надо добавить к текущей книге — и задача решена!
Ссылки по теме
- Что такое макросы, куда вставлять код макроса на Visual Basic
- Автоматическая сборка заданных листов из заданных книг с помощью надстройки PLEX
- Автоматическая сборка данных с нескольких листов на один итоговый лист с помощью надстройки PLEX
Предположим, имеется куча книг Excel, все листы из которых надо объединить в один файл. Копировать руками долго и мучительно, поэтому имеет смысл использовать несложный макрос.
Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic (ALT+F11), добавляем новый пустой модуль (в меню Insert — Module) и копируем туда текст вот такого макроса:
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As IntegerApplication.ScreenUpdating = False ‘отключаем обновление экрана для скорости
‘вызываем диалог выбора файлов для импорта
FilesToOpen = Application.GetOpenFilename _
(FileFilter:=»All files (*.*), *.*», _
MultiSelect:=True, Title:=»Files to Merge»)If TypeName(FilesToOpen) = «Boolean» Then
MsgBox «Не выбрано ни одного файла!»
Exit Sub
End If‘проходим по всем выбранным файлам
x = 1
While x <= UBound(FilesToOpen)
Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
importWB.Close savechanges:=False
x = x + 1
WendApplication.ScreenUpdating = True
End Sub
После этого можно вернуться в Excel и запустить созданный макрос через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) или нажав ALT+F8. Отобразится диалоговое окно открытия файла, где необходимо указать один или несколько (удерживая CTRL или SHIFT) файлов, листы из которых надо добавить к текущей книге.
PE
Skip to content
Мы рассмотрим три способа объединения файлов Excel в один: путем копирования листов, запуска макроса VBA и использования инструмента «Копировать рабочие листы» из надстройки Ultimate Suite.
Намного проще обрабатывать данные в одном файле, чем переключаться между многочисленными книгами. Однако объединение нескольких книг Excel в один файл может быть сложным и долгим процессом, особенно если книги, которые вам нужно объединить, содержат много листов. Итак, как подойти к этой проблеме? Вы будете копировать их вручную или с помощью кода VBA? Или вы используете один из специализированных инструментов для объединения файлов Excel?
Ниже вы найдете несколько хороших способов, позволяющих реализовать объединение.
- Самое простое — копировать вручную.
- Объединение файлов Excel при помощи VBA.
- Как объединить несколько файлов с помощью Ultimate Suite.
Примечание. В этой статье мы рассмотрим, как копировать листы из нескольких книг Excel в одну книгу. Если вы ищете быстрый способ скопировать данные с нескольких листов на один общий лист, вы найдете подробную инструкцию в другой статье: Как объединить несколько листов в один.
Простой метод — копировать листы руками.
Если вам нужно объединить всего пару файлов Excel, вы можете вручную скопировать или переместить листы из одного файла в другой. Вот как это можно сделать:
- Откройте книги, которые мы планируем объединить.
- Выберите листы в исходной книге, которые вы хотите скопировать в основную книгу.
Чтобы выбрать несколько листов, используйте один из следующих приемов:
- Чтобы выбрать соседние листы, щелкните вкладку первого, который вы хотите скопировать, нажмите и удерживайте клавишу Shift, а затем щелкните вкладку последнего. Это действие выберет все листы между ними.
- Чтобы выбрать несмежные, удерживайте клавишу Ctrl и щелкайте вкладку каждого из них по отдельности.
- Выделив все нужные листы, щелкните правой кнопкой мыши любую из выделенных вкладок и выберите «Переместить» или «Копировать…» .
- В диалоговом окне «Перемещение или копирование» выполните следующие действия:
- В раскрывающемся списке «Переместить выбранные листы в книгу» выберите целевую книгу, в которую вы хотите объединить другие файлы.
- Укажите, где именно должны быть вставлены вкладки. В нашем случае мы выбираем вариант вставки в конец списка.
- Установите флажок «Создать копию», если хотите, чтобы исходные данные оставались оригинальном файле.
- Нажмите
ОК
, чтобы завершить операцию.
Чтобы объединить вкладки из нескольких файлов Excel, повторите описанные выше шаги для каждой книги отдельно.
Замечание. При копировании листов вручную помните о следующем ограничении, налагаемом Excel: невозможно переместить или скопировать группу листов, если какой-либо из них содержит «умную» таблицу. В этом случае вам придется либо преобразовать таблицу в диапазон, либо использовать один из других методов, не имеющих этого ограничения.
Как объединить файлы Excel с VBA
Если у вас есть несколько файлов Excel, которые необходимо объединить в один файл, более быстрым способом будет автоматизировать процесс с помощью макроса VBA.
Ниже вы найдете код VBA, который копирует все листы из всех файлов Excel, которые вы выбираете, в одну книгу. Этот макрос MergeExcelFiles написан Алексом.
Важное замечание! Макрос работает со следующим ограничением — объединяемые файлы не должны быть открыты физически или находиться в памяти, в буфере обмена. В таком случае вы получите ошибку во время выполнения.
Sub MergeExcelFiles()
Dim fnameList, fnameCurFile As Variant
Dim countFiles, countSheets As Integer
Dim wksCurSheet As Worksheet
Dim wbkCurBook, wbkSrcBook As Workbook
fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
If (vbBoolean <> VarType(fnameList)) Then
If (UBound(fnameList) > 0) Then
countFiles = 0
countSheets = 0
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set wbkCurBook = ActiveWorkbook
For Each fnameCurFile In fnameList
countFiles = countFiles + 1
Set wbkSrcBook = Workbooks.Open(Filename:=fnameCurFile)
For Each wksCurSheet In wbkSrcBook.Sheets
countSheets = countSheets + 1
wksCurSheet.Copy after:=wbkCurBook.Sheets(wbkCurBook.Sheets.Count)
Next
wbkSrcBook.Close SaveChanges:=False
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Processed " & countFiles & " files" & vbCrLf & "Merged " & countSheets & " worksheets", Title:="Merge Excel files"
End If
Else
MsgBox "No files selected", Title:="Merge Excel files"
End If
End Sub
Как добавить этот макрос в книгу
Если вы хотите вставить макрос в свою книгу, выполните следующие обычные действия:
- нажимать
Alt + F11
, чтобы открыть редактор Visual Basic. - Щелкните правой кнопкой мыши ThisWorkbook на левой панели и выберите « Вставить» > « Модуль» в контекстном меню.
- В появившемся окне (Окно кода) вставьте указанный выше код.
Более подробная инструкция описана в разделе Как вставить и запустить код VBA в Excel .
Кроме того, вы можете загрузить макрос в файле Excel, открыть его в этой книге (включить выполнение макросов, если будет предложено), а затем переключиться на свою собственную книгу и нажать Alt + F8
для его запуска. Если вы новичок в использовании макросов в Excel, следуйте подробным инструкциям ниже.
Как использовать макрос MergeExcelFiles
Откройте файл Excel, в котором вы хотите объединить листы из других книг, и выполните следующие действия:
- Нажмите комбинацию
Alt + F8
, чтобы открыть окно диалога. - В разделе « Имя макроса» выберите MergeExcelFiles и нажмите «Выполнить».
- Откроется стандартное окно проводника, вы выберите одну или несколько книг, которые хотите объединить, и нажмите «Открыть» . Чтобы выбрать несколько файлов , удерживайте нажатой клавишу Ctrl, указывая на их имена.
В зависимости от того, сколько файлов вы выбрали, дайте макросу несколько секунд или минут для их обработки. После завершения всех операций он сообщит вам, сколько файлов было обработано и сколько листов было объединено:
Как объединить несколько файлов с помощью Ultimate Suite.
Если вам не очень комфортно с VBA и вы ищете более простой и быстрый способ объединить файлы Excel, обратите внимание на инструмент «Копирование листов (Copy Sheets)» — одну из более чем 60 функций, включенных в невероятно функциональную программу Ultimate Suite for Excel. Она работает в версиях Excel 2010-2019.
С Ultimate Suite объединение нескольких файлов Эксель в один так же просто, как раз-два-три (буквально, всего 3 быстрых шага). Вам даже не нужно открывать те из них, которые вы хотите объединить. И это могут быть два файла или несколько — не важно.
- Открыв главную книгу, перейдите на вкладку «Ablebits Data» и нажмите «Копировать листы (Copy Sheets)» > «Выбранные в одну книгу (Selected Sheets to one workbook)».
- В диалоговом окне выберите файлы (а в них — листы), которые вы хотите объединить, и нажмите «Далее (Next)» .
Советы:
- Чтобы выбрать все листы в определенной книге, просто поставьте галочку в поле рядом с именем книги, и все они в этом файле будут выбраны автоматически.
- Чтобы объединить листы из закрытых книг, нажмите кнопку «Добавить файлы…» и выберите столько книг, сколько нужно. Это добавит выбранные файлы только в окно копирования, не открывая их в Excel.
- По умолчанию копируются все данные. Однако, в разных листах можно выбрать разные диапазоны для объединения. Чтобы скопировать только определенную область, наведите указатель мыши на имя вкладки, затем щелкните значок и выберите нужный диапазон.
- При необходимости укажите один или несколько дополнительных параметров и нажмите «Копировать» . На снимке скриншоте а ниже показаны настройки по умолчанию: Вставить все (формулы и значения) и Сохранить форматирование.
Дайте мастеру копирования листов несколько секунд для обработки и наслаждайтесь результатом!
На этой странице есть подробное описание всех возможностей работы мастера копирования.
Чтобы поближе познакомиться с этим и другими инструментами для Excel, вы можете загрузить ознакомительную версию Ultimate Suite.
Итак, я надеюсь, вы получили ответ на вопрос — как быстро объединить несколько файлов Excel в один.
На чтение 5 мин Опубликовано 07.01.2021
Часто при работе в табличном редакторе происходит так, что необходимая информация располагается на отдельных рабочих листах или же файлах. Перед пользователями встает задача объединения нескольких листов и файлов в единое целое. Можно, конечно, путем копирования ячеек из одного документа и вставки их в другой файл реализовать процедуру объединения, но это неудобно и неэффективно. В статье мы детально рассмотрим несколько эффективных методов, позволяющих реализовать объединение табличных документов в один.
Содержание
- Объединение рабочих листов в один в табличном редакторе
- Объединение информации в один файл
- Объединение файлов при помощи VBA
- Заключение
Объединение рабочих листов в один в табличном редакторе
Первоначально рассмотрим такую процедуру, как объединение рабочих листов в один документ. Подробная инструкция выглядит так:
- Производим открытие рабочих листов, которые мы планируем объединить в один файл.
- Передвигаемся в подраздел, имеющий наименование «Главная». Здесь в блоке команд «Формат» находим элемент под наименованием «Переместить или скопировать лист» и жмем по нему левой клавишей мышки.
- В раскрывшемся перечне жмем левой клавишей мышки на кнопку «(новая книга)».
- После реализации всех действий жмем на «ОК».
- Аналогичные операции необходимо произвести с остальными листами табличного документа.
Объединение информации в один файл
Часто возникают такие ситуации, когда необходимо произвести объединение некоторых фрагментов информации в единый файл. Эта процедура выполняется достаточно легко при помощи инструментов табличного редактора. Самое главное – информация, расположенная в табличках, должна быть заранее отформатирована, чтобы в дальнейшем не тратить огромное количество времени на приведение общей таблички к нормальному внешнему виду. Подробная инструкция выглядит так:
- К примеру, у нас есть следующие данные, которые необходимо перенести в один файл. Процесс объединения будет правильно работать только при соблюдении нескольких определенных моментов. Рабочие листики, которые будут проходить процедуру консолидации, должны быть приведены к единому форматированию с идентичными заголовками и форматами информации. Ко всему прочему, объединяемая информация не должна содержать в себе незаполненных строчек и колонок.
- После того как мы произведем приведение информации из разных рабочих областей к единому форматированию, нам необходимо реализовать создание нового рабочего листа. Сделать это можно путем нажатия левой клавиши мышки на небольшой плюсик темного цвета, расположенный в нижней части интерфейса табличного редактора рядом со вкладками других листов.
На заметку! Процедуру объединения можно реализовать и на той области, на которой уже находится нужная информация, но так можно запутаться из-за большого количества исходных данных.
- На следующем этапе мы передвигаемся в раздел, имеющий наименование «Данные». Найти его можно сверху, в основном меню табличного редактора. Здесь мы находим элемент, имеющий название «Консолидация», и жмем по нему левой клавишей мышки.
- В отобразившемся перечне жмем левой клавишей мышки по элементы «Сумма». Далее вводим координаты ячеек, которые мы планируем объединить.
- Аналогичные действия мы производим и с другой информацией, которую мы планируем объединить в один файл.
- После проведения всех необходимых действий жмем на «ОК», чтобы подтвердить внесенные изменения.
Важно! Этот метод плохо работает с информацией текстового вида. Для более качественного объединения данных в один файл следует воспользоваться следующим методом, подразумевающим использование макросов.
Объединение файлов при помощи VBA
Макросы, прописываемые в VBA, превосходно подходят для реализации процедуры объединения нескольких табличных документов в единый файл. Процедура не такая сложная, как кажется на первый взгляд. Главное – следовать пунктам подробной инструкции:
- Первоначально необходимо убедиться в том, что все необходимые табличные документы располагаются в одном месте персонального компьютера.
- На следующем этапе необходимо зайти в табличный редактор Эксель и создать в нем новую книгу, которая будет служить инструментом объединения остальных табличных документов.
- При помощи специальной комбинации горячих клавиш «Alt+F11» перемещаемся в «Visual Basic».
- Сначала нажимаем на «Вставить», а затем в появившемся перечне жмем левой клавишей мышки на элемент, имеющий наименование «Модуль».
- Теперь сюда необходимо написать следующий небольшой код:
Sub GetSheets()
Path = «ваш путь»
Filename = Dir(Path & «*.xls»)
Do While Filename «»
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
- В переменную Path необходимо написать путь к тому месту персонального компьютера, в котором располагаются табличные документы для объединения.
- Производим сохранение табличного документа в формате «XLSM», чтобы активировать созданные макросы.
- Производим запуск макроса.
- Готово! Мы объединили все файлы, находящиеся в папке, в один табличный документ.
Заключение
Мы выяснили, что существует множество способов, позволяющих реализовать объединение нескольких файлов в один табличный документ. Использовать функцию под названием «Консолидация» целесообразно только в том случае, если в файлах содержится только числовая информация, так как функция не способна корректно работать с данными текстового формата. Самый эффективный способ, позволяющий качественно объединить табличный документы в один файл без потери информации, – это использование интегрированного языка программирования «Visual Basic» и активация специальных макросов. Однако каждый пользователь сможет сам подобрать более удобный для себя способ объединения табличных документов.
Оцените качество статьи. Нам важно ваше мнение:
Excel macro that allows you to select multiple workbooks and have all of their worksheets automatically combined into a single workbook.
This macro will add the worksheets to a newly created workbook and not to the currently open/visible workbook. This allows you to do whatever you want with the new workbook without having to worry about the contents of the current workbook.
This macro allows you to select as many files as you want to combine and you do it all through the regular «Select File» dialogue box, which makes it really easy to use.
You do not have to change anything for this macro to work, just run it.
Where to Install the Macro: Module
Sub Combine_Workbooks_Select_Files_1()
Dim Fnum As Long
Dim mybook As Workbook
Dim BaseWb As Workbook
Dim CalcMode As Long
Dim FName As Variant
Dim wSheet As Worksheet
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
'Get the files to combine
FName = Application.GetOpenFilename(filefilter:="Excel Files (*.xl*), *.xl*", MultiSelect:=True)
If IsArray(FName) Then
'Create the workbook to store the combined files
Set BaseWb = Workbooks.Add(xlWBATWorksheet)
'Loop through the files to combine
For Fnum = LBound(FName) To UBound(FName)
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open(FName(Fnum))
On Error GoTo 0
If Not mybook Is Nothing Then
On Error Resume Next
'Add the worksheets to the new workbook
For Each wSheet In mybook.Worksheets
wSheet.Move Before:=BaseWb.Sheets(1)
Next wSheet
mybook.Close savechanges:=False
On Error GoTo 0
End If
Next Fnum
'Delete a default worksheet that was added to the new workbook.
BaseWb.Sheets(BaseWb.Sheets.Count).Delete
End If
ExitTheSub:
'Reset the options for display, alerts, and calculations.
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = CalcMode
.DisplayAlerts = True
End With
End Sub
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Combine Multiple Workbooks into One
Macro: This macro for Microsoft Excel allows you to combine multiple workbooks and worksheets int…
Combine Values from Multiple Cells into One Cell in Excel
Tutorial: There are two easy ways to combine values from multiple cells in Excel.
In order to do thi…
Guide to Combine and Consolidate Data in Excel
Tutorial: Guide to combining and consolidating data in Excel. This includes consolidating data from …
Combine Data from Multiple Worksheets in Excel
Tutorial:
The easiest way to combine and consolidate data in Excel.
Simple method to combine data …
Vlookup Across Multiple Workbooks
Tutorial: How to use the VLOOKUP function across multiple workbooks in Excel. This will create a lin…
Import a Worksheet from One Workbook to Another in Excel
Tutorial: In Excel, you can quickly copy an entire worksheet from one workbook to another workbook.�…
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
Or For other ways to get there, Click Here. - On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
0 / 0 / 0 Регистрация: 06.12.2011 Сообщений: 9 |
|
1 |
|
Собрать данные из нескольких документов в один12.12.2012, 16:39. Показов 22479. Ответов 20
Доброго времени суток, я сам начинающий, и у меня вопрос, как сделать обработку, например бат файл, чтобы он собирал все файлы в один, или указываешь на какой то определенный каталог(папку) и он берет из нее EXCEL файлы и собирает в один EXCEL — файл.Заранее спасибо!
0 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
12.12.2012, 17:06 |
2 |
Новичёк1000000, сначала нужно уточнить:
0 |
Новичёк1000000 0 / 0 / 0 Регистрация: 06.12.2011 Сообщений: 9 |
||||
13.12.2012, 09:34 [ТС] |
3 |
|||
Скрипт, я думаю макрос с этим справится, если его написать на VBA, похожий нашел, но необходимо немного изменить под требования
(она работает, только листы добавляет, а надо чтобы все в один писала)
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
14.12.2012, 10:05 |
4 |
|||
Приведу свой код 2007 года с другого форума.
1 |
0 / 0 / 0 Регистрация: 21.01.2013 Сообщений: 5 |
|
15.05.2013, 14:53 |
5 |
Добавлено через 1 минуту А если необходимо объединить два и более текстовых документа doc в один конечный doc. Эту процедуру запускать из БД access в форме по нажатию кнопки. Пути нахождения документов известны. Конечный документ создается или можно в ранее созданный документ.
0 |
undefined7 259 / 7 / 1 Регистрация: 22.01.2013 Сообщений: 47 |
||||||
15.05.2013, 21:04 |
6 |
|||||
я пользуюсь прикреплённым макросом.
Вложения
2 |
4 / 4 / 0 Регистрация: 18.07.2014 Сообщений: 14 |
|
18.07.2014, 14:50 |
7 |
Добрый день! Могли бы подсказать, а есть ли аналогичный макрос, только для документов Word, а именно: есть папка с документами, в открытый документ скопировать надпись или строку таблицы из всех документов в этой папке (желательно не открывая документы в папке). Спасибо!
0 |
0 / 0 / 0 Регистрация: 23.11.2013 Сообщений: 3 |
|
15.11.2014, 17:28 |
8 |
Здравствуйте! Очень прошу помочь.
0 |
Irbtim 0 / 0 / 0 Регистрация: 13.11.2014 Сообщений: 13 |
||||
25.03.2015, 13:01 |
9 |
|||
Всем Доброго дня,
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
25.03.2015, 13:12 |
10 |
Определяете в чём эта неидентичность и как её кодом опознать, для каждой пишите свой вариант обработки.
0 |
0 / 0 / 0 Регистрация: 13.11.2014 Сообщений: 13 |
|
25.03.2015, 14:43 |
11 |
В ексель файлах информация находится не одинакова в одних и тех же ячейках, могуть быть выше на строчку, или ниже
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
25.03.2015, 16:30 |
12 |
И чем этот код не годится? Только не повторяйтесь
0 |
Irbtim 0 / 0 / 0 Регистрация: 13.11.2014 Сообщений: 13 |
||||
25.03.2015, 16:43 |
13 |
|||
Друзья,
0 |
Burnoutman 7 / 7 / 4 Регистрация: 05.04.2012 Сообщений: 147 |
||||
02.08.2019, 21:08 |
14 |
|||
Приведу свой код 2007 года с другого форума.
Код отличный,если Запустить в Visual Basic из под Excel,то всё работает,но когда сохраняю в notepad++ в .vbs выдаёт ошибку: Миниатюры
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
02.08.2019, 23:40 |
15 |
Насколько помню — в vbs нет типов переменных.
0 |
Burnoutman 7 / 7 / 4 Регистрация: 05.04.2012 Сообщений: 147 |
||||
03.08.2019, 00:15 |
16 |
|||
Насколько помню — в vbs нет типов переменных.
Строка:14
0 |
7 / 7 / 4 Регистрация: 05.04.2012 Сообщений: 147 |
|
03.08.2019, 09:10 |
17 |
Пофиг на этот vbs. Как изменить код так, чтобы информация сохранялась в этот же файл excel из которого запускается макрос, а не предлагала сохранить в новый?
0 |
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
03.08.2019, 20:08 |
18 |
|||
строка 15:
Ну и после строки 44 до строки 56 всё удалить. Можно дописать сохранение wbTarget, а можно и не дописывать. сохранить вручную если нужно.
1 |
0 / 0 / 0 Регистрация: 01.09.2020 Сообщений: 11 |
|
13.04.2022, 13:46 |
19 |
Здравствуйте.
0 |
811 / 465 / 181 Регистрация: 09.03.2009 Сообщений: 1,577 |
|
13.04.2022, 20:43 |
20 |
Сделать цикл Dir или FSO.
0 |
Как объеденить кучу Excel файлов в один?
Передо мной стала задача — нужно автоматизировать рутинную работу. Есть куча Excel файлов и нужно собрать их в один. Делать это придется неоднократно, поэтому стал вопрос в написании программы.
Вопрос заключается в следующем: объективно ли будет писать данную программу на Python? Если нет, то как можно решить данную проблему проще?
Заранее благодарен всем, кто попытается помочь.
- Вопрос задан более трёх лет назад
- 109281 просмотр
- Вконтакте
Предположим, имеется куча книг Excel, все листы из которых надо объединить в один файл. Копировать руками долго и мучительно, поэтому имеет смысл использовать несложный макрос.
Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic (ALT+F11), добавляем новый пустой модуль (в меню Insert — Module) и копируем туда текст вот такого макроса:
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
Application.ScreenUpdating = False ‘отключаем обновление экрана для скорости
‘вызываем диалог выбора файлов для импорта
FilesToOpen = Application.GetOpenFilename _
(FileFilter:=»All files (*.*), *.*», _
MultiSelect:=True, Title:=»Files to Merge»)
If TypeName(FilesToOpen) = «Boolean» Then
MsgBox «Не выбрано ни одного файла!»
Exit Sub
End If
Как объединить файлы Excel в один
Часто при работе в табличном редакторе происходит так, что необходимая информация располагается на отдельных рабочих листах или же файлах. Перед пользователями встает задача объединения нескольких листов и файлов в единое целое. Можно, конечно, путем копирования ячеек из одного документа и вставки их в другой файл реализовать процедуру объединения, но это неудобно и неэффективно. В статье мы детально рассмотрим несколько эффективных методов, позволяющих реализовать объединение табличных документов в один.
Объединение рабочих листов в один в табличном редакторе
Первоначально рассмотрим такую процедуру, как объединение рабочих листов в один документ. Подробная инструкция выглядит так:
- Производим открытие рабочих листов, которые мы планируем объединить в один файл.
- Передвигаемся в подраздел, имеющий наименование «Главная». Здесь в блоке команд «Формат» находим элемент под наименованием «Переместить или скопировать лист» и жмем по нему левой клавишей мышки.
- В раскрывшемся перечне жмем левой клавишей мышки на кнопку «(новая книга)».
- После реализации всех действий жмем на «ОК».
- Аналогичные операции необходимо произвести с остальными листами табличного документа.
Объединение информации в один файл
Часто возникают такие ситуации, когда необходимо произвести объединение некоторых фрагментов информации в единый файл. Эта процедура выполняется достаточно легко при помощи инструментов табличного редактора. Самое главное – информация, расположенная в табличках, должна быть заранее отформатирована, чтобы в дальнейшем не тратить огромное количество времени на приведение общей таблички к нормальному внешнему виду. Подробная инструкция выглядит так:
- К примеру, у нас есть следующие данные, которые необходимо перенести в один файл. Процесс объединения будет правильно работать только при соблюдении нескольких определенных моментов. Рабочие листики, которые будут проходить процедуру консолидации, должны быть приведены к единому форматированию с идентичными заголовками и форматами информации. Ко всему прочему, объединяемая информация не должна содержать в себе незаполненных строчек и колонок.
- После того как мы произведем приведение информации из разных рабочих областей к единому форматированию, нам необходимо реализовать создание нового рабочего листа. Сделать это можно путем нажатия левой клавиши мышки на небольшой плюсик темного цвета, расположенный в нижней части интерфейса табличного редактора рядом со вкладками других листов.
На заметку! Процедуру объединения можно реализовать и на той области, на которой уже находится нужная информация, но так можно запутаться из-за большого количества исходных данных.
- На следующем этапе мы передвигаемся в раздел, имеющий наименование «Данные». Найти его можно сверху, в основном меню табличного редактора. Здесь мы находим элемент, имеющий название «Консолидация», и жмем по нему левой клавишей мышки.
- В отобразившемся перечне жмем левой клавишей мышки по элементы «Сумма». Далее вводим координаты ячеек, которые мы планируем объединить.
- Аналогичные действия мы производим и с другой информацией, которую мы планируем объединить в один файл.
- После проведения всех необходимых действий жмем на «ОК», чтобы подтвердить внесенные изменения.
Важно! Этот метод плохо работает с информацией текстового вида. Для более качественного объединения данных в один файл следует воспользоваться следующим методом, подразумевающим использование макросов.
Объединение файлов при помощи VBA
Макросы, прописываемые в VBA, превосходно подходят для реализации процедуры объединения нескольких табличных документов в единый файл. Процедура не такая сложная, как кажется на первый взгляд. Главное – следовать пунктам подробной инструкции:
- Первоначально необходимо убедиться в том, что все необходимые табличные документы располагаются в одном месте персонального компьютера.
- На следующем этапе необходимо зайти в табличный редактор Эксель и создать в нем новую книгу, которая будет служить инструментом объединения остальных табличных документов.
- При помощи специальной комбинации горячих клавиш «Alt+F11» перемещаемся в «Visual Basic».
- Сначала нажимаем на «Вставить», а затем в появившемся перечне жмем левой клавишей мышки на элемент, имеющий наименование «Модуль».
- Теперь сюда необходимо написать следующий небольшой код:
- В переменную Path необходимо написать путь к тому месту персонального компьютера, в котором располагаются табличные документы для объединения.
- Производим сохранение табличного документа в формате «XLSM», чтобы активировать созданные макросы.
- Производим запуск макроса.
- Готово! Мы объединили все файлы, находящиеся в папке, в один табличный документ.
Заключение
Мы выяснили, что существует множество способов, позволяющих реализовать объединение нескольких файлов в один табличный документ. Использовать функцию под названием «Консолидация» целесообразно только в том случае, если в файлах содержится только числовая информация, так как функция не способна корректно работать с данными текстового формата. Самый эффективный способ, позволяющий качественно объединить табличный документы в один файл без потери информации, – это использование интегрированного языка программирования «Visual Basic» и активация специальных макросов. Однако каждый пользователь сможет сам подобрать более удобный для себя способ объединения табличных документов.
Как объединить файлы Excel и листы
Нужно объединить несколько наборов данных в одну электронную таблицу? Вот как.
Иногда необходимые данные Excel разбиваются на несколько листов или даже несколько файлов. Может быть значительно удобнее поместить всю эту информацию в один и тот же документ.
В крайнем случае, можно скопировать и вставить различные необходимые ячейки, поместив их все на одном листе. Однако в зависимости от объема данных, с которыми вы работаете, это может занять много времени и усилий.
Вместо этого рассмотрим некоторые из более разумных способов выполнить ту же задачу. Эти три метода могут просто позволить вам пропустить некоторые из занятой работы
когда дело доходит до слияния листов или файлов в Excel.
Как объединить листы Excel
Excel позволяет легко объединить несколько листов в новую рабочую книгу.
- Откройте листы, которые вы хотите объединить.
- Нажмите Главная >Формат >Переместить или скопировать лист.
- Используйте выпадающее меню, чтобы выбрать (новая книга).
- Нажмите Хорошо.
Объединение листов в одну рабочую книгу
Самый простой способ объединить листы в Excel — это использовать Переместить или скопировать лист команда. Этот метод имеет свои ограничения, но он быстрый и простой.
Сначала откройте листы, которые вы хотите объединить в той же книге. Использовать Формат выпадающий в Главная выберите вкладку Переместить или скопировать лист.
Вы должны увидеть эти элементы управления:
Используйте выпадающий список, чтобы выбрать (новая книга). Это будет служить основной таблицей
куда мы отправляем все наши отдельные листы. Вы можете использовать Перед листом: поле, чтобы указать порядок, в котором находятся листы.
Повторите этот процесс с остальными листами, которые вы хотите объединить. Затем сохраните новый мастер-документ.
Объединение данных в один лист
Иногда вам может понадобиться взять несколько наборов данных и представить их как один лист. Это довольно легко сделать в Excel, если вы потратите время на то, чтобы ваши данные были отформатированы заблаговременно.
Вот данные, которые я собираюсь использовать. Есть две вещи, которые очень важны, если этот процесс работает правильно; листы, которые вы консолидируете, должны использовать точно такой же макет
с одинаковыми заголовками и типами данных, и не может быть никаких пустых строк или столбцов.
Когда вы приведете свои данные в соответствие с этими спецификациями, создайте новый рабочий лист. Процедуру консолидации можно запустить на листе, где уже есть данные, но это проще не делать.
На этом новом листе направляйтесь к Данные вкладка и нажмите закреплять.
Выбрать сумма из раскрывающегося списка, а затем используйте кнопку в Рекомендации поле для доступа к вашей электронной таблице, чтобы вы могли выбрать нужные данные.
Сделайте это для всех наборов данных, которые вы хотите объединить. Вы даже можете извлечь из других книг, используя Просматривать кнопка, иначе известный как Выбрать в Mac версии Excel.
Отметьте поле с названием Создать ссылки на исходные данные если вы собираетесь продолжать обновлять данные на других листах и хотите, чтобы этот лист отражал это. Вы также можете выбрать, какие ярлыки переносятся с помощью флажков, показанных выше. Я выбрал галочку в обоих полях, потому что хотел оба набора меток.
Наконец, нажмите Хорошо.
Вы должны получить что-то вроде скриншота выше. К сожалению, этот процесс не подходит, если вы хотите объединить ячейки с текстом в них — он работает только с числовыми данными. В этой ситуации вам нужно будет использовать VBA
Объединение рабочих тетрадей с VBA
Если вы хотите объединить листы из нескольких книг за один раз, лучше всего написать простой макрос VBA
, Это особенно удобно, если вы будете выполнять эту задачу на регулярной основе.
Во-первых, убедитесь, что все книги, которые вы хотите объединить, находятся в одной папке на вашем компьютере. Затем создайте новую электронную таблицу Excel, которая объединит их все.
Голова к разработчик вкладка и нажмите Visual Basic.
Нажмите Вставить> Модуль и скопируйте и вставьте следующий код, взятый из руководства ExtendOffice:
Обязательно измените путь к папке, где хранятся файлы на вашем компьютере.
Затем сохраните вашу книгу как файл XLSM, чтобы макросы были включены
, Затем запустите макрос, и вы обнаружите, что у вас есть одна рабочая книга, которая содержит все листы из всех файлов в папке.
Смотри, прежде чем прыгать
Объединение листов и файлов в Excel довольно сложное и грязное. Этот факт должен осветить один из самых важных уроков о Microsoft Excel: всегда полезно планировать заранее.
Объединение различных наборов данных после факта всегда вызывает некоторые головные боли, особенно если вы работаете с большими электронными таблицами, которые использовались в течение длительного времени. Всякий раз, когда вы начинаете работать с новой книгой
Лучше рассмотреть все возможности того, что файл понадобится для дальнейшего развития.
Excel отлично подходит для создания документов, на которые можно ссылаться и использовать в течение длительного периода времени, но решения, принятые на раннем этапе, могут вызвать проблемы позже.
У вас есть совет для объединения различных наборов данных? Или вы ищете помощь с методами в этом руководстве? В любом случае, почему бы не присоединиться к беседе в разделе комментариев ниже?