Мені зателефонував друг, який хотів об’єднати кілька файлів 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.