Макрос excel скопировать все в один файл

Сборка листов из разных книг в одну

Предположим, имеется куча книг 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

0 / 0 / 0

Регистрация: 06.08.2019

Сообщений: 5

1

Excel

06.08.2019, 16:22. Показов 19865. Ответов 9


Студворк — интернет-сервис помощи студентам

Здравствуйте!

Помогите сделать два макроса в excel, которые будут копировать данные из множества файлов excel в один файл excel.
Я полный новичок в данной теме… Находил различные варианты в интернете, но отредактировать под себя не получается.

Все файлы excel, из которых будут копироваться данные, одинаковой структуры, а файл в который необходимо записать данные другой структуры. Все данные находятся на первом листе.

К примеру:
Первый макрос.
В каждом файле excel необходимые данные для копирования находятся в ячейке C3 и в диапазоне C6 : C13, а собрать все эти данные необходимо в единственном файле excel и расположить в нем нужно так —> из первого файла C3->A5 (из следующего файла C3->A6 и т.д.), из первого файла диапазон C6 : C13 -> B5 : I5 (из следующего файла C6 : C13 -> B6 : I6 и т.д.) получается из столбца в строку. Данные каждого нового файла с новой строки.

Второй макрос точно такой же и с теми же файлами, но берется диапазон D6 : D13 вместо C6 : C13 и записывается так же, только это уже будет для другого файла.

По факту будут две папки с файлами excel в одной будет работать макрос по диапазону C6 : C13, в другой папке те же файлы только макрос там будет работать по диапазону D6 : D13

Заранее спасибо!

К этой теме прикрепил две папки с образцами файлов из которых будут копироваться данные и файлы в которые все будет собираться.

P.S Буду учиться делать макросы на этом примере и на других что найду…



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

07.08.2019, 05:33

2

Just67, включаете макрорекодер (Разработчик — Запись макроса) и проделываете все действия, которые вы написали, потом Остановить запись и получаете макрос ваших действий вручную. Потом подрабатываете его, например, вставляете в цикл по строкам, при этом заменяете конкретный номер строки на переменную цикла.



1



Just67

0 / 0 / 0

Регистрация: 06.08.2019

Сообщений: 5

07.08.2019, 10:18

 [ТС]

3

Спасибо за совет. Макрос я записал своих действий, но дальше для меня не понятно. Как я говорил, я в этом полный новичок(знаний практически нет).
Если вам не трудно, можете написать работающий макрос?
Вот результат записи макроса:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Макрос3()
'
' Макрос3 Макрос
'
 
'
    Windows("файл 1.xlsx").Activate
    Range("C3").Select
    Selection.Copy
    Windows("Сюда собираются данные из файлов.xlsx").Activate
    Range("A5").Select
    ActiveSheet.Paste
    Windows("файл 1.xlsx").Activate
    Range("C6:C13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Сюда собираются данные из файлов.xlsx").Activate
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Windows("файл 2.xlsx").Activate
    Range("C3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Сюда собираются данные из файлов.xlsx").Activate
    Range("A6").Select
    ActiveSheet.Paste
    Windows("файл 2.xlsx").Activate
    Range("C6:C13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Сюда собираются данные из файлов.xlsx").Activate
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub

Количество файлов и их название из которых информация копируется не известно.



0



Burk

1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

07.08.2019, 14:19

4

Just67, ну этот макрос тоже должен работать, хотя его можно значительно упростить. Я могу, конечно, без проверки это сделать т.к. не хочется ещё и создавать ваши файлы с данными. Но можете прислать файлы, тогда с проверкой. Какой вариант вам больше подходит?

Добавлено через 42 минуты
Посмотрите, что получилось из вашего макроса

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Perenos()
'
Dim From As Workbook, Ins As Workbook, Win As Workbook, I As Integer, S As String
Set Ins = Workbooks("Сюда собираются данные из файлов.xlsm")
Ins.Activate
For I = 1 To 2
  Set From = Workbooks("файл " & I & ".xlsx")
  With From.Sheets(1)
     Range("A" & (I + 4)) = .Range("C3")
    .Range("C6:C13").Copy
    Range("B" & (I + 4)).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
         SkipBlanks:=False, Transpose:=True
  End With
Next
End Sub



1



0 / 0 / 0

Регистрация: 06.08.2019

Сообщений: 5

07.08.2019, 15:29

 [ТС]

5

Не получилось запустить макрос выдал ошибку Run-time error ‘9’: Subscript out of range
макрос останавливается на 7 строке «Set From = Workbooks(«файл » & I & «.xlsx»)».

И если файлов из которых данные будут копироваться больше двух, то ваш макрос будет копировать со всех файлов в один? Имена файлов так же не известно какие будут и в каком формате.

Скриншот в приложении

Миниатюры

Макросы на копирование данных из нескольких файлов excel в один файл excel
 



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

07.08.2019, 16:25

6

Just67, макрос работает, вы что не видите, что имя файлов, из которых беруться данные, должно быть файл 1.xlsx и файл 2.xlsx

как в вашем макросе

И давайте запустите этот, а что будет дальше, то потом. Конечно надо расширить цикл, если три файла, то и цикл до трёх и т.д., если названия непохожие друг на друга, то нужно будет создать массив имен и обращаться к массивам через него. Вы пока не думайте так далеко, вредно это.
И в начале сообщения нажимайте на мой ник, тогда я буду знать, что есть упоминание в теме
перед числом в имени файла пробел

Добавлено через 6 минут
обращаться к файлам через него

Добавлено через 33 минуты
перед запуском макроса все три файла должны быть загружены в эксель



1



Burk

1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

08.08.2019, 04:47

7

Just67, а вот так можно грузить любое количество файлов с любыми именами. Но должны быть загружены только те, из которых надо копировать информацию.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Perenos2()
Dim From As Workbook, Ins As Workbook, I As Integer
Set Ins = Workbooks("Сюда собираются данные из файлов.xlsm")
Ins.Activate: I = 4
For Each From In Workbooks
  If From.Name <> ThisWorkbook.Name Then
    I = I + 1
    With From.Sheets(1)
      Range("A" & I) = .Range("C3")
      .Range("C6:C13").Copy
      Range("B" & I).Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
           SkipBlanks:=False, Transpose:=True
    End With
  End If
Next
Application.CutCopyMode = False
If I = 4 Then MsgBox "Не загружены файлы с исходной информацией!"
End Sub



0



Just67

0 / 0 / 0

Регистрация: 06.08.2019

Сообщений: 5

08.08.2019, 12:31

 [ТС]

8

Burk, Спасибо за подробное разъяснение. Я когда запускал макрос имена не поменял, после того как поменял и открыл нужные таблицы макрос сделал все как надо.
И последний макрос запустил все работает как надо, спасибо.
Можете еще посоветовать каким образом лучше в макросе сделать проверку на пустую ячейку?
К примеру: если в ячейки «C3» нет данных(пустая), то в ячейку «A» файла «Сюда собираются данные из файлов.xlsm» указывается название файла, в котором ячейка «C3» пустая.

В моем варианте в ячейку записывается название файла с его расширением. Как сделать, чтобы расширение не записывалось?

Код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Perenos()
Dim From As Workbook, Ins As Workbook, I As Integer
Set Ins = Workbooks(".Сюда собираются данные из файлов.xlsm")
Ins.Activate: I = 4
For Each From In Workbooks
  If From.Name <> ThisWorkbook.Name Then
    I = I + 1
    With From.Sheets(1)
        If .Range("C3") = "" Then
        Range("A" & I) = From.Name
        Else
      Range("A" & I) = .Range("C3")
        End If
      .Range("C6:C13").Copy
      Range("B" & I).Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
           SkipBlanks:=False, Transpose:=True
    End With
  End If
Next
Application.CutCopyMode = False
If I = 4 Then MsgBox "Не загружены файлы с исходной информацией!"
End Sub

Добавлено через 10 минут
Burk, Еще было бы интересно узнать каким образом можно сделать проверку на пустые ячейки в диапазоне C6 : C13 и если такие есть, то вместо пустой ячейки записывать «0».

Добавлено через 10 минут
Извиняюсь, что задаю много вопросов.

Что нужно дописать в макрос, чтобы не нужно было загружать файлы в эксель?



0



Burk

1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

08.08.2019, 15:40

9

Just67, первый вопрос

Visual Basic
1
2
3
4
5
6
    Range("A" & I) = Left(From.Name, InstrRev(From.Name,".") - 1)
'второй вопрос - видимо имеются в виду нули в копиях этих ячеек файла "Сюда собираются ..."?
'Если так, то после строки 17 вставить
For J = 2 To 9
     If Cells(I, J) = "" Then Cells(I, J) = 0
Next

третий вопрос — У меня не было необходимости вытаскивать значения ячеек из закрытой книги, но подобные темы выплывают регулярно и на этом форуме, последний раз где-то 2-3 месяца назад. Наберите в поиске типа Получить информацию из закрытой книги или обратитесь к Hugo121 или pashulka, они, по-моему, писали ответы, мне бы не хотелось с этим разбираться.

Добавлено через 2 часа 34 минуты
Just67, чтобы не привязываться к имени файла, в который копируется, можно строку 4 в макросе записать так (описание для Ins можно убрать) и удалить строку 3

Visual Basic
1
ThisWorkbook.Sheets(1).Activate: I = 4



0



0 / 0 / 0

Регистрация: 06.08.2019

Сообщений: 5

08.08.2019, 17:02

 [ТС]

10

Burk, Спасибо, все работает.



0



Skip to content

Как быстро объединить несколько файлов Excel

Мы рассмотрим три способа объединения файлов Excel в один: путем копирования листов, запуска макроса VBA и использования инструмента «Копировать рабочие листы» из надстройки Ultimate Suite.

Намного проще обрабатывать данные в одном файле, чем переключаться между многочисленными книгами. Однако объединение нескольких книг Excel в один файл может быть сложным и долгим процессом, особенно если книги, которые вам нужно объединить, содержат много листов. Итак, как подойти к этой проблеме? Вы будете копировать их вручную или с помощью кода VBA? Или вы используете один из специализированных инструментов для объединения файлов Excel? 

Ниже вы найдете несколько хороших способов, позволяющих реализовать объединение.

  • Самое простое — копировать вручную.
  • Объединение файлов Excel при помощи VBA.
  • Как объединить несколько файлов с помощью Ultimate Suite.

Примечание. В этой статье мы рассмотрим, как копировать листы из нескольких книг Excel в одну книгу. Если вы ищете быстрый способ скопировать данные с нескольких листов на один общий лист, вы найдете подробную инструкцию в другой статье: Как объединить несколько листов в один.

Простой метод — копировать листы руками.

Если вам нужно объединить всего пару файлов Excel, вы можете вручную скопировать или переместить листы из одного файла в другой. Вот как это можно сделать:

  1. Откройте книги, которые мы планируем объединить.
  2. Выберите листы в исходной книге, которые вы хотите скопировать в основную книгу.

Чтобы выбрать несколько листов, используйте один из следующих приемов:

  • Чтобы выбрать соседние листы, щелкните вкладку первого, который вы хотите скопировать, нажмите и удерживайте клавишу Shift, а затем щелкните вкладку последнего. Это действие выберет все листы между ними.
  • Чтобы выбрать несмежные, удерживайте клавишу Ctrl и щелкайте вкладку каждого из них по отдельности.
  • Выделив все нужные листы, щелкните правой кнопкой мыши любую из выделенных вкладок и выберите «Переместить» или «Копировать…» .

  1. В диалоговом окне «Перемещение или копирование» выполните следующие действия:
    • В раскрывающемся списке «Переместить выбранные листы в книгу» выберите целевую книгу, в которую вы хотите объединить другие файлы.
    • Укажите, где именно должны быть вставлены вкладки. В нашем случае мы выбираем вариант вставки в конец списка.
    • Установите флажок «Создать копию», если хотите, чтобы исходные данные оставались оригинальном файле.
    • Нажмите ОК, чтобы завершить операцию.

Чтобы объединить вкладки из нескольких файлов 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

Как добавить этот макрос в книгу

Если вы хотите вставить макрос в свою книгу, выполните следующие обычные действия:

  1. нажимать Alt + F11 , чтобы открыть редактор Visual Basic.
  2. Щелкните правой кнопкой мыши ThisWorkbook на левой панели и выберите « Вставить» > « Модуль» в контекстном меню.
  3. В появившемся окне (Окно кода) вставьте указанный выше код.

Более подробная инструкция описана в разделе Как вставить и запустить код VBA в Excel .

Кроме того, вы можете загрузить макрос в файле Excel, открыть его в этой книге (включить выполнение макросов, если будет предложено), а затем переключиться на свою собственную книгу и нажать Alt + F8 для его запуска. Если вы новичок в использовании макросов в Excel, следуйте подробным инструкциям ниже.

Как использовать макрос MergeExcelFiles

Откройте файл Excel, в котором вы хотите объединить листы из других книг, и выполните следующие действия:

  1. Нажмите комбинацию Alt + F8, чтобы открыть окно диалога.
  2. В разделе « Имя макроса» выберите MergeExcelFiles и нажмите «Выполнить».

  1. Откроется стандартное окно проводника, вы выберите одну или несколько книг, которые хотите объединить, и нажмите «Открыть» . Чтобы выбрать несколько файлов , удерживайте нажатой клавишу Ctrl, указывая на их имена.

В зависимости от того, сколько файлов вы выбрали, дайте макросу несколько секунд или минут для их обработки. После завершения всех операций он сообщит вам, сколько файлов было обработано и сколько листов было объединено:

Как объединить несколько файлов с помощью Ultimate Suite.

Если вам не очень комфортно с VBA и вы ищете более простой и быстрый способ объединить файлы Excel, обратите внимание на инструмент «Копирование листов (Copy Sheets)» — одну из более чем 60 функций, включенных в невероятно функциональную программу Ultimate Suite for Excel. Она работает в версиях Excel 2010-2019.

С Ultimate Suite объединение нескольких файлов Эксель в один так же просто, как раз-два-три (буквально, всего 3 быстрых шага). Вам даже не нужно открывать те из них, которые вы хотите объединить. И это могут быть два файла или несколько — не важно.

  1. Открыв главную книгу, перейдите на вкладку «Ablebits Data» и нажмите «Копировать листы (Copy Sheets)» > «Выбранные в одну книгу (Selected Sheets to one workbook)».

  1. В диалоговом окне выберите файлы (а в них — листы), которые вы хотите объединить, и нажмите «Далее (Next)» .

Советы:

  • Чтобы выбрать все листы в определенной книге, просто поставьте галочку в поле рядом с именем книги, и все они в этом файле будут выбраны автоматически.
  • Чтобы объединить листы из закрытых книг, нажмите кнопку «Добавить файлы…» и выберите столько книг, сколько нужно. Это добавит выбранные файлы только в окно копирования, не открывая их в Excel.
  • По умолчанию копируются все данные. Однако, в разных листах можно выбрать разные диапазоны для объединения. Чтобы скопировать только определенную область, наведите указатель мыши на имя вкладки, затем щелкните значок    и выберите нужный диапазон. 
  • При необходимости укажите один или несколько дополнительных параметров и нажмите «Копировать» . На снимке скриншоте а ниже показаны настройки по умолчанию: Вставить все (формулы и значения) и Сохранить форматирование.

Дайте мастеру копирования листов несколько секунд для обработки и наслаждайтесь результатом!

На этой странице есть подробное описание всех возможностей работы мастера копирования.

Чтобы поближе познакомиться с этим и другими инструментами для Excel, вы можете загрузить ознакомительную версию Ultimate Suite.

Итак, я надеюсь, вы получили ответ на вопрос — как быстро объединить несколько файлов Excel в один.

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

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

  1. Select and copy the text from within the grey box above.
  2. Open the Microsoft Excel file in which you would like the Macro to function.
  3. Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
     Or For other ways to get there, Click Here.
  4. 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.
  5. If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
  6. If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
  7. If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
  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.
  9. You are now ready to run the macro.

Как быстро объединить несколько файлов Excel

Мы рассмотрим три способа объединения файлов Excel в один: путем копирования листов, запуска макроса VBA и использования инструмента «Копировать рабочие листы» из надстройки Ultimate Suite.

обработать данные в файле намного проще, чем переключаться между книгами. Однако объединение нескольких книг Excel в один файл может быть сложным и трудоемким процессом, особенно если книги, которые необходимо объединить, содержат много листов. Так как же решить эту проблему? Будете ли вы копировать их вручную или с помощью кода VBA? Или вы используете один из специализированных инструментов для объединения файлов Excel? 

Ниже вы найдете несколько хороших способов реализовать слияние.

  • Самый простой — скопировать вручную.
  • Комбинируйте файлы Excel с VBA.
  • Как объединить несколько файлов с Ultimate Suite.

Примечание. В этой статье мы расскажем, как скопировать листы из нескольких книг Excel в одну книгу. Если вы ищете быстрый способ скопировать данные с нескольких листов на общий лист, вы найдете подробные инструкции в другой статье: Как объединить несколько листов в один.

Простой метод — копировать листы руками.

Если вам просто нужно объединить пару файлов Excel, вы можете вручную скопировать или переместить листы из одного файла в другой. Вот как это сделать:

  1. Откройте книги, которые мы планируем объединить.
  2. Выберите листы в исходной книге, которые вы хотите скопировать в основную книгу.

Чтобы выбрать несколько листов, используйте один из следующих приемов:

  • Чтобы выбрать соседние листы, щелкните вкладку первого листа, который вы хотите скопировать, удерживайте нажатой клавишу Shift, затем щелкните вкладку последнего. Это действие выберет все листы между ними.
  • Чтобы выбрать несмежные, удерживайте клавишу Ctrl и щелкайте по каждой вкладке по отдельности.
  • Выделив все листы, щелкните правой кнопкой мыши одну из выделенных вкладок и выберите «Переместить или скопировать…» .

  1. В диалоговом окне «Перемещение или копирование» выполните следующие действия:
    • В раскрывающемся списке «Переместить выбранные листы в книгу» выберите целевую книгу, в которой вы хотите объединить другие файлы.
    • Укажите, где именно должны быть вставлены карты. В нашем случае мы выбираем вариант, который будет включен в конец списка.
    • Установите флажок «Создать копию», если вы хотите, чтобы исходные данные остались в исходном файле.
    • Щелкните ОК, чтобы завершить операцию.

Чтобы объединить вкладки из нескольких файлов Excel, повторите описанные выше шаги для каждой книги отдельно.

Комментарий. При копировании листов вручную помните о следующем ограничении, налагаемом Excel: нельзя перемещать или копировать набор листов, если один из них содержит интеллектуальную таблицу. В этом случае вам нужно будет преобразовать таблицу в диапазон или использовать один из других методов, у которых нет этого ограничения.

Как объединить файлы Excel с VBA

Если у вас есть несколько файлов Excel, которые необходимо объединить в один файл, более быстрый способ — автоматизировать процесс с помощью макроса VBA.

Ниже вы найдете код VBA, который копирует все листы из всех выбранных файлов Excel в книгу. Этот макрос MergeExcelFiles написан Алексом.

Важная заметка! Макрос работает со следующим ограничением: объединяемые файлы не должны быть открыты физически или в памяти, в буфере обмена. В этом случае вы получите ошибку во время выполнения.

Sub MergeExcelFiles () Dim fnameList, fnameCurFile As Variant Dim countFiles, countSheets As Integer Dim wksCurSheet как рабочий лист Dim wbkCurBook, wbkSrcBook как рабочая книга fnameList = Application.GetOpenFilename (FileFilter: = «Microsoft xls», xls); Файлы Excel для объединения «, 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 для каждого fnameCurFile в fnameList countFiles = countFiles + 1 Set wbkSrcBook = Workbooks.Open (Имя файла: = f ForCurBookS .Sheets countSheets = countFogli.Sheets (wbk.CurBook) NextSheets SaveChaets: = False Next Applicationculation =ScreenUp Application. = xlCalculationBFutomatic & Msgcessed files «& v bCrLf &» Merged «& countSheets &» worksheets «, Title: =» Merge Excel file «End If Else MsgBox» None n selected file «, Title: =» Объединить файл Excel «End If End Sub

Как добавить этот макрос в книгу

Если вы хотите вставить макрос в свою книгу, выполните следующие обычные действия:

  1. нажмите Alt + F11, чтобы открыть редактор Visual Basic.
  2. Щелкните правой кнопкой мыши ThisWorkbook на левой панели и выберите в контекстном меню «Вставка»> «Форма.
  3. В появившемся окне (Окно кода) вставьте указанный выше код.

Более подробные инструкции см. В разделе Как вставить и запустить код VBA в Excel .

Кроме того, вы можете загрузить макрос в файл Excel, открыть его в этой книге (при необходимости включить выполнение макроса), затем перейти к своей книге и нажать Alt + F8, чтобы запустить его. Если вы новичок в использовании макросов в Excel, следуйте подробным инструкциям ниже.

Как использовать макрос MergeExcelFiles

Откройте файл Excel, в котором вы хотите объединить листы из других книг, и выполните следующие действия:

  1. Нажмите Alt + F8, чтобы открыть диалоговое окно.
  2. В разделе «Имя макроса» выберите MergeExcelFiles и нажмите «Выполнить».

  1. Откроется стандартное окно проводника, выберите одну или несколько книг, которые вы хотите объединить, и нажмите «Открыть». Чтобы выбрать несколько файлов, удерживайте клавишу Ctrl при вводе их имен.

В зависимости от того, сколько файлов вы выбрали, дайте макросу несколько секунд или минут на их обработку. После выполнения всех операций он сообщит вам, сколько файлов было обработано и сколько листов было объединено:

Как объединить несколько файлов с помощью Ultimate Suite.

Если вам не очень нравится VBA и вы ищете более простой и быстрый способ объединить файлы Excel, воспользуйтесь инструментом Копирование листов, одной из более чем 60 функций, включенных в потрясающий Ultimate Suite for Excel. Работает в версиях Excel 2010-2019.

С Ultimate Suite объединить несколько файлов Excel в один так же просто, как один-два-три (буквально 3 быстрых шага). Вам даже не нужно открывать те, которые хотите объединить. И это может быть два и более файла, неважно.

  1. Открыв главную бухгалтерскую книгу, перейдите на вкладку «Данные» в Ablebits и нажмите Копировать листы> Выбранные листы в книге)».

  1. В диалоговом окне выберите файлы (а в них — листы), которые хотите объединить, и нажмите «Далее)» .

Совет:

  • Чтобы выбрать все листы в определенной книге, просто установите флажок рядом с названием книги, и все они в этом файле будут выбраны автоматически.
  • Чтобы объединить закрытые книжные листы, нажмите кнопку «Добавить файлы…» и выберите все нужные книги. Это только добавит выбранные файлы в окно копирования, но не откроет их в Excel.
  • По умолчанию все данные копируются. Однако на разных листах вы можете выбрать разные диапазоны для объединения. Чтобы скопировать только определенную область, наведите указатель мыши на название вкладки, затем щелкните значок и выберите нужный диапазон. 
  • При необходимости укажите один или несколько дополнительных параметров и нажмите «Копировать». На следующем снимке экрана показаны настройки по умолчанию: Вставить все (формулы и значения) и Сохранить форматирование.

Дайте мастеру копирования несколько секунд на обработку и наслаждайтесь результатом!

Эта страница содержит подробное описание всех функций мастера копирования.

Чтобы ближе познакомиться с этим и другими инструментами Excel, вы можете загрузить пробную версию Ultimate Suite.

Итак, я надеюсь, что у вас есть ответ на свой вопрос: как быстро объединить несколько файлов Excel в один.

Предположим, имеется куча книг 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

‘проходим по всем выбранным файлам
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 и запустить созданный макрос через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) или нажав ALT+F8. Отобразится диалоговое окно открытия файла, где необходимо указать один или несколько (удерживая CTRL или SHIFT) файлов, листы из которых надо добавить к текущей книге.
PE

Содержание

  1. Excel макросы объединение таблиц
  2. Консолидация (объединение) данных из нескольких таблиц в одну
  3. Способ 1. С помощью формул
  4. Способ 2. Если таблицы неодинаковые или в разных файлах
  5. Консолидация (объединение) данных из нескольких таблиц в одну
  6. Способ 1. С помощью формул
  7. Способ 2. Если таблицы неодинаковые или в разных файлах
  8. Как свести таблицы excel из разных файлов в один
  9. Как объединить две таблицы Excel в одну
  10. Как объединить две таблицы Excel с помощью функции ВПР
  11. Консолидация данных в программе Microsoft Excel
  12. Условия для выполнения процедуры консолидации
  13. Создание консолидированной таблицы
  14. Как объединить файлы Excel и таблицы
  15. Как объединить файлы и таблицы Excel
  16. Объединить таблицы в новый или существующий файл
  17. Объединить несколько файлов Excel

Excel макросы объединение таблиц

Существует две таблицы с данными:

  • Таблица Goods в которой хранятся товары.
  • Таблица Costs в которой хранятся цены этих товаров.

Нужно связать эти две таблицы в одну, получив, тем самым таблицу, содержащую в себе как товары, так и их цены (разбиты по городам). В обеих таблица существует поле «Номенклатурный номер», по которому и предполагается связывать данные из исходных таблиц. Проще говоря, нужно получить таблицу Result, добавив в таблицу Goods последние четыре столбца из таблицы Costs, на основании эквивалентности поля «Номенклатурного номер».

Excel 2003
Файл с книгой прикрепил.

Вложения

Catalog.rar (352.6 Кб, 63 просмотров)

У Вас там косяк в номере 400019075.
Если последние 4, то отработал код из http://hugo.nxt.ru/CompareFiles.Find.rar
1146 совпадений.

Настройки:
Файл — приёмник: C:tempVectorCКаталог.xls
Файл — источник: C:tempVectorCКаталог.xls
Столбцы сравнения в приёмнике: a
Столбцы сравнения в источнике: a
Лист — приёмник (№): 1
Лист — источник (№): 2
Столбцы — приёмники данных копирования: O,P,Q,R
Столбцы — источники данных копирования: E,F,G,H

Добиваем первый лист данными второго. Можно сперва на лист Result скопировать данные первого листа и добивать туда.

Спасибо, только у меня почему-то ничего не получилось.
Пишет:

Object doesn’t support this property or method

В чём косяк номера 400019075?

Жаль. Версия Экселя какая у Вас? У меня на 2000 и 2007 работает.
А косяк в том, что 400019075 два раза в таблице — один раз данных больше.

Хотя именно под эту задачу несложно макрос на массиве написать — вечером могу сделать, если раньше не напишут.

Источник

Консолидация (объединение) данных из нескольких таблиц в одну

Способ 1. С помощью формул

Имеем несколько однотипных таблиц на разных листах одной книги. Например, вот такие:

Необходимо объединить их все в одну общую таблицу, просуммировав совпадающие значения по кварталам и наименованиям.

Самый простой способ решения задачи «в лоб» — ввести в ячейку чистого листа формулу вида

=’2001 год’!B3+’2002 год’!B3+’2003 год’!B3

которая просуммирует содержимое ячеек B2 с каждого из указанных листов, и затем скопировать ее на остальные ячейки вниз и вправо.

Если листов очень много, то проще будет разложить их все подряд и использовать немного другую формулу:

=СУММ(‘2001 год:2003 год’!B3)

Фактически — это суммирование всех ячеек B3 на листах с 2001 по 2003, т.е. количество листов, по сути, может быть любым. Также в будущем возможно поместить между стартовым и финальным листами дополнительные листы с данными, которые также станут автоматически учитываться при суммировании.

Способ 2. Если таблицы неодинаковые или в разных файлах

Если исходные таблицы не абсолютно идентичны, т.е. имеют разное количество строк, столбцов или повторяющиеся данные или находятся в разных файлах, то суммирование при помощи обычных формул придется делать для каждой ячейки персонально, что ужасно трудоемко. Лучше воспользоваться принципиально другим инструментом.

Рассмотрим следующий пример. Имеем три разных файла (Иван.xlsx, Рита.xlsx и Федор.xlsx) с тремя таблицами:

Хорошо заметно, что таблицы не одинаковы — у них различные размеры и смысловая начинка. Тем не менее их можно собрать в единый отчет меньше, чем за минуту. Единственным условием успешного объединения (консолидации) таблиц в подобном случае является совпадение заголовков столбцов и строк. Именно по первой строке и левому столбцу каждой таблицы Excel будет искать совпадения и суммировать наши данные.

Для того, чтобы выполнить такую консолидацию:

  1. Заранее откройте исходные файлы
  2. Создайте новую пустую книгу (Ctrl + N)
  3. Установите в нее активную ячейку и выберите на вкладке (в меню) Данные — Консолидация(Data — Consolidate) . Откроется соответствующее окно:

  • Установите курсор в строку Ссылка(Reference) и, переключившись в файл Иван.xlsx, выделите таблицу с данными (вместе с шапкой). Затем нажмите кнопку Добавить(Add) в окне консолидации, чтобы добавить выделенный диапазон в список объединяемых диапазонов.
  • Повторите эти же действия для файлов Риты и Федора. В итоге в списке должны оказаться все три диапазона:

    Обратите внимание, что в данном случае Excel запоминает, фактически, положение файла на диске, прописывая для каждого из них полный путь (диск-папка-файл-лист-адреса ячеек). Чтобы суммирование происходило с учетом заголовков столбцов и строк необходимо включить оба флажка Использовать в качестве имен (Use labels) . Флаг Создавать связи с исходными данными (Create links to source data) позволит в будущем (при изменении данных в исходных файлах) производить пересчет консолидированного отчета автоматически.

    После нажатия на ОК видим результат нашей работы:

    Наши файлы просуммировались по совпадениям названий из крайнего левого столбца и верхней строки выделенных областей в каждом файле. Причем, если развернуть группы (значками плюс слева от таблицы), то можно увидеть из какого именно файла какие данные попали в отчет и ссылки на исходные файлы:

    Источник

    Консолидация (объединение) данных из нескольких таблиц в одну

    Способ 1. С помощью формул

    Имеем несколько однотипных таблиц на разных листах одной книги. Например, вот такие:

    Необходимо объединить их все в одну общую таблицу, просуммировав совпадающие значения по кварталам и наименованиям.

    Самый простой способ решения задачи «в лоб» — ввести в ячейку чистого листа формулу вида

    =’2001 год’!B3+’2002 год’!B3+’2003 год’!B3

    которая просуммирует содержимое ячеек B2 с каждого из указанных листов, и затем скопировать ее на остальные ячейки вниз и вправо.

    Если листов очень много, то проще будет разложить их все подряд и использовать немного другую формулу:

    =СУММ(‘2001 год:2003 год’!B3)

    Фактически — это суммирование всех ячеек B3 на листах с 2001 по 2003, т.е. количество листов, по сути, может быть любым. Также в будущем возможно поместить между стартовым и финальным листами дополнительные листы с данными, которые также станут автоматически учитываться при суммировании.

    Способ 2. Если таблицы неодинаковые или в разных файлах

    Если исходные таблицы не абсолютно идентичны, т.е. имеют разное количество строк, столбцов или повторяющиеся данные или находятся в разных файлах, то суммирование при помощи обычных формул придется делать для каждой ячейки персонально, что ужасно трудоемко. Лучше воспользоваться принципиально другим инструментом.

    Рассмотрим следующий пример. Имеем три разных файла (Иван.xlsx, Рита.xlsx и Федор.xlsx) с тремя таблицами:

    Хорошо заметно, что таблицы не одинаковы — у них различные размеры и смысловая начинка. Тем не менее их можно собрать в единый отчет меньше, чем за минуту. Единственным условием успешного объединения (консолидации) таблиц в подобном случае является совпадение заголовков столбцов и строк. Именно по первой строке и левому столбцу каждой таблицы Excel будет искать совпадения и суммировать наши данные.

    Для того, чтобы выполнить такую консолидацию:

    1. Заранее откройте исходные файлы
    2. Создайте новую пустую книгу (Ctrl + N)
    3. Установите в нее активную ячейку и выберите на вкладке (в меню) Данные — Консолидация(Data — Consolidate) . Откроется соответствующее окно:

  • Установите курсор в строку Ссылка(Reference) и, переключившись в файл Иван.xlsx, выделите таблицу с данными (вместе с шапкой). Затем нажмите кнопку Добавить(Add) в окне консолидации, чтобы добавить выделенный диапазон в список объединяемых диапазонов.
  • Повторите эти же действия для файлов Риты и Федора. В итоге в списке должны оказаться все три диапазона:

    Обратите внимание, что в данном случае Excel запоминает, фактически, положение файла на диске, прописывая для каждого из них полный путь (диск-папка-файл-лист-адреса ячеек). Чтобы суммирование происходило с учетом заголовков столбцов и строк необходимо включить оба флажка Использовать в качестве имен (Use labels) . Флаг Создавать связи с исходными данными (Create links to source data) позволит в будущем (при изменении данных в исходных файлах) производить пересчет консолидированного отчета автоматически.

    После нажатия на ОК видим результат нашей работы:

    Наши файлы просуммировались по совпадениям названий из крайнего левого столбца и верхней строки выделенных областей в каждом файле. Причем, если развернуть группы (значками плюс слева от таблицы), то можно увидеть из какого именно файла какие данные попали в отчет и ссылки на исходные файлы:

    Источник

    Как свести таблицы excel из разных файлов в один

    Как объединить две таблицы Excel в одну

    Как часто, работая с данными, вам удается уместить всю необходимую для анализа информацию в одну таблицу? Скорее всего, никогда.

    Чаще всего, нужные нам данные находятся в разных файлах и мы сталкиваемся с необходимостью сопоставить или объединить их из нескольких таблиц в одну.

    В этой статье мы рассмотрим наиболее эффективные способы как это сделать.

    Как объединить две таблицы Excel с помощью функции ВПР

    Если вы хотите сопоставить две таблицы по данным из одного столбца, то тут лучше всего подойдет функция ВПР.

    Представим, у нас есть две таблицы. В основной таблице у нас есть данные с наименованиями товаров, продавцов и количестве продаж, а во второй с ценами на эти товары. Мы хотим подставить данные с ценами на товары в таблицу с данными о продажах и посчитать выручку на каждого из продавцов.

    Для этого в ячейку D2 вставим формулу с функцией ВПР:

    • B2 – ячейка с названием товара, которое мы ищем в таблице с ценами;
    • $G$2:$H$4 – диапазон ячеек таблицы с наименованием товаров и ценами. В столбце G содержатся названия товаров, по которым функция осуществляет поиск. В столбце H отражены цены, которые функция ВПР будет подставлять в нашу таблицу. Диапазон ячеек включает в себя значки $, с их помощью диапазон зафиксирован и не будет изменяться при протягивании формулы по другим ячейкам.
    • 2 – номер столбца в диапазоне данных с ценами на товары, которые мы хотим подставить в нашу таблицу.
    • 0 – точность совпадения данных. Ставим “0”, так как нам необходимо точное совпадение.

    Протянем полученную формулу на все строки столбца и получим таблицу с расчетом выручки по каждому товару, для каждого продавца.

    Консолидация данных в программе Microsoft Excel

    При работе с однотипными данными, размещенными в разных таблицах, листах или даже книгах, для удобства восприятия лучше собрать информацию воедино. В Microsoft Excel с этой задачей можно справиться с помощью специального инструмента, который называется «Консолидация». Он предоставляет возможность собрать разрозненные данные в одну таблицу. Давайте узнаем, как это делается.

    Условия для выполнения процедуры консолидации

    Естественно, что не все таблицы можно консолидировать в одну, а только те, которые соответствуют определенным условиям:

    • столбцы во всех таблицах должны иметь одинаковое название (допускается лишь перестановка столбцов местами);
    • не должно быть столбцов или строк с пустыми значениями;
    • шаблоны у таблиц должны быть одинаковыми.

    Создание консолидированной таблицы

    Рассмотрим, как создать консолидированную таблицу на примере трех таблиц, имеющих одинаковый шаблон и структуру данных. Каждая из них расположена на отдельном листе, хотя по такому же алгоритму можно создать консолидированную таблицу из данных расположенных в разных книгах (файлах).

      Открываем отдельный лист для консолидированной таблицы.

    В поле «Функция» требуется установить, какое действие с ячейками будет выполняться при совпадении строк и столбцов. Это могут быть следующие действия:

    • сумма;
    • количество;
    • среднее;
    • максимум;
    • минимум;
    • произведение;
    • количество чисел;
    • смещенное отклонение;
    • несмещенное отклонение;
    • смещенная дисперсия;
    • несмещенная дисперсия.

    Как видим, после этого диапазон добавляется в список.

    Аналогичным образом, добавляем все другие диапазоны, которые будут участвовать в процессе консолидации данных.

    Для того, чтобы автоматически добавить название столбцов в шапку, ставим галочку около параметра «Подписи верхней строки». Для того, чтобы производилось суммирование данных устанавливаем галочку около параметра «Значения левого столбца». Если вы хотите, чтобы при обновлении данных в первичных таблицах обновлялась также и вся информация в консолидированной таблице, то обязательно следует установить галочку около параметра «Создавать связи с исходными данными». Но, в этом случае нужно учесть, что, если вы захотите в исходную таблицу добавить новые строки, то придется снять галочку с данного пункта и пересчитать значения вручную.

    Как видим, консолидация данных в Эксель является очень удобным инструментом, благодаря которому можно собрать воедино информацию расположенную не только в разных таблицах и на разных листах, но даже размещенную в других файлах (книгах). Делается это относительно просто и быстро.

    Мы рады, что смогли помочь Вам в решении проблемы.

    Как объединить файлы Excel и таблицы

    При работе с несколькими файлами Microsoft Excel иногда необходимо объединить файлы и таблицы Excel в новый или существующий файл Excel или объедините несколько файлов Excel в один файл. Хотя вы всегда можете скопировать и вставить данные с одного листа на другой или из одного файла в другой, это утомительно, когда их слишком много. В этом посте мы расскажем, как их можно объединить с помощью встроенной функции.

    Как объединить файлы и таблицы Excel

    Прежде чем приступить к объединению файлов и листов, хорошо спланируйте это. Хотя вы всегда можете переставить листы позже, чем лучше вы планируете, тем меньше часов вы потратите на их сортировку после объединения.

    1. Объединить таблицы в новый или существующий файл
    2. Объединить несколько файлов Excel

    Хотя функции, которые мы здесь будем использовать, позволят вам перемещать листы, я рекомендую копировать. Если вам снова понадобится исходный файл, у вас будет выбор.

    Объединить таблицы в новый или существующий файл

    Прежде чем мы начнем слияние, убедитесь, что у вас открыты все файлы Excel. Только когда они открыты, функция слияния Excel может выбрать их в качестве места назначения. Если вы планируете переместить листы из нескольких файлов в новый файл Excel, вы также можете это сделать.

    • Откройте исходный файл Excel и переключитесь на лист, который вы хотите скопировать.
    • Щелкните вкладку «Главная»> раздел «Ячейки»> «Формат»> «Переместить или скопировать лист».
    • Откроется всплывающее окно, в котором вы можете выбрать существующий файл Excel или создать новый файл на ходу.
      • Когда ты выберите новый вариант файла, он мгновенно создаст новый файл, но не сохранит его.
      • Когда ты выберите существующий файл, у вас есть возможность выбрать, куда будет вставлен лист, т. е. до или после существующих листов или в конце всех листов.

      Вы также можете перейти в существующий файл, что удобно, если листов слишком много, и вам нужно вставить лист где-то между ними или переместить его в конец.

      Если вы хотите переместить несколько листов в другой файл Excel, то перед использованием «Переместите или скопируйте лист » выберите листы с помощью Ctrl или Shift. В то время как Shift позволяет вам выбирать соседние листы или диапазон листов, Ctrl позволяет вам выбирать отдельные листы. Остальные шаги такие же. Вы можете использовать это для ручного слияния файлов Excel.

      Объединить несколько файлов Excel

      Слияние файлов Excel — сложная вещь, и для этого мы будем использовать код VBA из ExtendOffice. Это позволит вам объединить несколько файлов или книг, доступных в папке.

      • Создайте новую электронную таблицу Excel и нажмите ALT + F11, чтобы открыть раздел разработчика.
      • Щелкните меню «Вставка», а затем «Модуль»
      • Вставьте код, указанный ниже. Назовите модуль MergeExcel

      Затем нажмите Alt + F8 открыть Макрос диалог. Это покажет все макросы на листе. Выбирать MergeExcel и нажмите Пробег. Вам будет предложено сохранить файлы, обязательно сделайте это. После этого все листы из разных файлов Excel станут доступны в файле Excel, в котором вы запускали макрос. На веб-сайте ExtendOffice есть много таких макросов, и я настоятельно рекомендую посетить их по адресу extendoffice.com.

      Тем не менее, это не будет гладким опытом с первой попытки. Будьте уверены, что он не удалит какие-либо файлы, но я бы посоветовал сохранить резервную копию файлов. Поэкспериментируйте со случайными данными и проверьте, получаете ли вы желаемый результат с помощью макроса.

      Мы надеемся, что руководство было легким для понимания, и вы можете объединить файлы Excel и таблицы.

      Источник

  • Иногда нужные данные Microsoft Excel разбиваются на несколько листов или даже файлов. Может быть намного удобнее хранить всю эту информацию в одном документе.

    Вы можете скопировать и вставить нужные ячейки в крайнем случае, разместив их все на одном листе. Однако, в зависимости от того, с каким объемом данных вы работаете, это может занять много времени и усилий.

    Вместо этого рассмотрите несколько более разумных способов решения той же задачи. Эти методы могут просто позволить вам пропустить часть напряженной работы, когда дело доходит до объединения листов или файлов в Excel.

    В Excel легко объединить несколько листов в новую книгу. Объедините листы, создав новую книгу:

    1. Откройте листы, которые хотите объединить.
    2. Щелкните Главная > Формат > Переместить или скопировать лист .
    3. В раскрывающемся меню выберите (новая книга) .
    4. Щелкните ОК .

    Как объединить листы в Excel в один файл

    Самый простой способ объединить листы в Excel – использовать команду « Переместить» или «Копировать лист» . Этот метод объединения листов в Excel имеет свои ограничения, но он быстрый и простой.

    Сначала откройте листы, которые хотите объединить в одну книгу. Оттуда:

    1. Направляйтесь домой
    2. Щелкните Форматировать
    3. Выберите переместить или скопировать лист

    Вы должны увидеть элементы управления, указывающие, куда переместить выбранные листы и порядок этих листов.

    В раскрывающемся списке выберите (новая книга) . Это будет основная электронная таблица, куда вы отправите все свои отдельные листы. Вы можете использовать поле Перед листом, чтобы указать порядок расположения листов.

    Повторите этот процесс с остальными листами, которые хотите объединить. Затем сохраните новый составной документ.

    Объединить данные Excel на один лист

    Иногда вам может понадобиться взять несколько наборов данных и представить их на одном листе. Это довольно легко сделать в Excel, если вы заранее позаботитесь о том, чтобы ваши данные были правильно отформатированы .

    Для правильной работы этого процесса есть два важных условия. Во-первых, объединяемые листы должны иметь точно такой же макет, с идентичными заголовками и типами данных. Во-вторых, не может быть пустых строк или столбцов.

    Когда вы разместите свои данные в соответствии с этими спецификациями, создайте новый рабочий лист. Можно запустить процедуру консолидации на существующем листе, где уже есть данные, но этого проще не делать.

    На этом новом листе перейдите на вкладку « Данные » и нажмите « Консолидировать» . В раскрывающемся списке выберите « Сумма», а затем нажмите кнопку в поле « Ссылка», чтобы открыть электронную таблицу и выбрать нужные данные.

    Чтобы добавить следующий набор данных, нажмите « Добавить», а затем таким же образом выберите данные. Сделайте это для всех наборов данных, которые вы хотите объединить. Вы даже можете рисовать из других книг, используя кнопку « Обзор» , которая в версии Excel для Mac является « Выбрать» .

    Установите флажок « Создать ссылки на исходные данные», если вы собираетесь продолжать обновлять данные на других листах и ​​хотите, чтобы этот лист отражал это. Вы также можете выбрать, какие метки переносятся, с помощью флажков Использовать метки в флажках, как показано выше.

    Наконец, нажмите ОК .

    К сожалению, этот процесс не подходит для объединения двух листов Excel, если вы хотите объединить ячейки с текстом в них. Работает только с числовыми данными. В ситуации, связанной с текстом, вам нужно будет использовать VBA для объединения листов Excel.

    Как объединить таблицы Excel с VBA

    Если вы хотите мгновенно объединить листы в Excel из нескольких книг, лучший способ – написать простой макрос VBA. Это будет особенно удобно, если вы будете выполнять эту задачу регулярно.

    Во-первых, убедитесь, что все файлы, которые вы хотите объединить, находятся в одной папке на вашем компьютере. Затем создайте новую электронную таблицу Excel, которая объединит их всех.

    Перейдите на вкладку Разработчик и выберите Visual Basic . Щелкните Вставить> Модуль .

    Чтобы узнать, как объединить два листа Excel с помощью макроса VBA, мы проконсультировались с ExtendOffice . Скопируйте и вставьте следующий код:

     Sub GetSheets()
    Path = "C:[PATH TO FILES]"
    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

    Не забудьте изменить путь к месту хранения файлов на вашем компьютере.

    Затем сохраните книгу как файл XLSM, чтобы включить макросы. Затем запустите макрос, и вы должны обнаружить, что у вас есть одна книга, содержащая все листы из всех файлов в папке.

    Связанный: Как копировать формулы в Microsoft Excel

    Будьте осторожны перед объединением данных Excel

    Объединение листов и файлов в Excel может быть сложным и беспорядочным. Это проливает свет на один из самых важных уроков о Microsoft Excel: всегда хорошо планировать заранее.

    Слияние разных наборов данных постфактум всегда вызывает несколько головных болей, особенно если вы работаете с большими электронными таблицами, которые использовались долгое время. Когда вы начинаете работать с новой книгой, лучше всего рассмотреть все возможности того, как вы будете использовать файл в дальнейшем.

    Excel отлично подходит для создания документов, к которым вы можете обращаться и использовать в течение длительного периода времени, но решения, принятые на раннем этапе, могут вызвать или предотвратить проблемы позже. Как говорится, унция профилактики.

    Понравилась статья? Поделить с друзьями:
  • Макрос excel своя функция
  • Макрос excel своя процедура
  • Макрос excel рассылка письма
  • Макрос excel разорвать связи в excel
  • Макрос excel разбить на листы