Як об’єднати кілька файлів Excel в одну книгу Excel

Мені зателефонував друг, який хотів об’єднати кілька файлів Excel в одну книгу Excel. У нього було багато файлів у папці, і він хотів зібрати всі аркуші з усіх робочих книг в одну єдину книгу.

Хоча це можна зробити вручну, це займе багато часу та спричинить помилки.

Однак простий код VBA може зробити це за кілька секунд.

Об'єднайте кілька файлів Excel в один файл

Ось код, який може об’єднати кілька робочих книг Excel у вказаній папці в одну книгу Excel:

Sub ConslidateWorkbooks () 'Створено Sumit Bansal з https://trumpexcel.com Dim FolderPath як рядок Dim Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environment ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do While Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True для кожного аркуша в ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Наступний аркуш робочих книг (Ім'я файлу). Закрити Ім'я файлу = Dir () Циклічна програма.ScreenUpdating = True End Sub

Як користуватися цим кодом?

Ось кроки для використання цього коду:

  • Помістіть усі файли Excel, які потрібно об’єднати, у папку. Для цілей цього підручника я створив папку з назвою «Тест» і містив у ній шість файлів (по 4 робочі книги Excel та по 1 Power Point і Word кожен).
  • Відкрийте нову книгу Excel.
  • Натисніть ALT + F11 (або перейдіть до Розробник -> Код -> Visual Basic). Відкриється редактор Visual Basic.
  • У редакторі VB у редакторі проектів клацніть правою кнопкою миші будь -який об’єкт книги та перейдіть до пункту Вставити -> Модуль. Це додасть модуль для робочої книги.
  • Двічі клацніть на модулі. Відкриється вікно коду праворуч.
  • Скопіюйте та вставте наведений вище код у вікно коду.
  • У коді вам потрібно змінити наступний рядок коду:
    FolderPath = Environment ("userprofile") & "DesktopTest"

    У цьому рядку змініть частину у подвійних лапках (виділено помаранчевим кольором) з розташуванням папки, у якій у вас є файли, які потрібно об’єднати. У наведеному вище коді папка знаходиться на Робочому столі. Якщо у вас є в іншому місці, вкажіть цей шлях тут.

  • Поставте курсор у будь -якому місці коду та натисніть зелену кнопку відтворення у параметрах панелі інструментів (або натисніть клавішу F5).

Це запустить код, і всі аркуші з усіх файлів Excel у папці об’єднаються в єдину книгу.

Як працює цей кодекс?

  • Код використовує функцію DIR для отримання імен файлів із зазначеної папки.
  • Наступний рядок призначає ім’я першого файлу Excel змінній «Ім'я файлу».
    Ім'я файлу = Dir (FolderPath & “*.xls*”)
  • Потім цикл Do While використовується для перевірки того, чи всі файли покриті.
  • У циклі "Do While" цикл "For Each" використовується для копіювання всіх аркушів у книгу, у якій ми запускаємо код.
  • В кінці циклу Do використовується наступний рядок коду: Ім'я файлу = Dir (). Він призначає змінному Filename назву наступного файлу Excel, і цикл починається знову.
  • Коли всі файли охоплені, функція DIR повертає порожній рядок, коли цикл закінчується.

Ось пояснення функції DIR у бібліотеці MSDN:

Реж повертає ім'я першого файлу, що відповідає імені шляху. Щоб отримати будь -які додаткові назви файлів, які відповідають імені шляху, зателефонуйте Реж знову без аргументів. Якщо імена файлів більше не збігаються, Реж повертає рядок нульової довжини (“”).

Ви коли -небудь пробували щось подібне за допомогою VBA? Поділіться тим, що ви зробили, і ми всі можемо цьому навчитися.

Заощаджуйте шалену кількість часу за допомогою VBA. Перевірте Курс Excel VBA.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave