/ / Імпорт листів за допомогою Excel VBA

Імпорт таблиць за допомогою Excel VBA

Нижче ми розглянемо програму в Росії Excel VBA це імпорт листи з інших файлів Excel в один файл Excel.

Завантажте Book1.xls, Book2.xls і додайте їх до "C: test"

Ситуація:

Імпорт таблиць за допомогою Excel VBA

Додайте наступні кодові рядки до кнопки команди:

1. По-перше, ми оголошуємо дві змінні типу String, об'єкт Worksheet і одну змінну типу Integer.

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2. Вимкніть оновлення екрана та відображення попереджень.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Ініціалізація каталогу змінної. Ми використовуємо функцію Dir, щоб знайти перший * .xl ?? файл, що зберігається в цьому каталозі.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Примітка. Функція Dir підтримує використання декількох символів (*) та символів одного символу (?) Для пошуку всіх різних типів файлів Excel.

4. Ім'я змінної filename тепер містить назву першого файлу Excel, знайденого в каталозі. Додайте цикл Do While Loop.

Do While fileName <> ""

Loop

Додайте наступні кодові рядки (на 5, 6, 7 і 8) до петлі.

5. Немає простого способу копіювати робочі аркуші з закритих файлів Excel. Тому ми відкриваємо файл Excel.

Workbooks.Open (directory & fileName)

6. Імпортуйте аркуші з файлу Excel у файл import-sheet.xls.

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

Пояснення: сума переміщення містить відстеження загальної кількості робочих аркуш import-sheet.xls. Ми використовуємо метод Copy об'єкта Worksheet для копіювання кожного аркуша та вставляємо його після останнього аркуша import-sheets.xls.

7. Закрийте файл Excel.

Workbooks(fileName).Close

8. Функція Dir - це особлива функція. Щоб отримати інші файли Excel, ви можете знову використовувати функцію Dir без аргументів.

fileName = Dir()

Примітка: коли імена файлів не збігаються, функція Dir повертає рядок нульової довжини (""). В результаті Excel VBA вийде з циклу Do Hold.

9. Увімкніть оновлення екрана та відображення попереджень (за межами петлі).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Перевірте програму.

Результат:

Імпорт таблиць результату

Також читайте: