Vba: як відкрити всі файли в папці


Ви можете використовувати цикл Do While з методом Workbooks.Open у VBA, щоб відкрити всі файли в певній папці.

Ось поширений спосіб зробити це на практиці:

 Sub OpenAllFilesInFolder()

Dim ThisFolder As String
Dim ThisFile As String

'specify folder location and types of files to open in folder
ThisFolder = "C:\Users\bob\Documents\current_data"
ThisFile = Dir(ThisFolder & "\*.xlsx")

'open each xlsx file in folder
Do While ThisFile <> ""
    Workbooks.Open Filename:=ThisFolder & "\" & ThisFile
    ThisFile = Dir
Loop

End Sub

Цей конкретний макрос відкриває всі файли з розширенням .xlsx у такій папці:

  • C:\Users\bob\Documents\current_data

У наступному прикладі показано, як використовувати цей макрос на практиці.

Пов’язане: як отримати список усіх відкритих книг за допомогою VBA

Приклад: як відкрити всі файли в папці за допомогою VBA

Скажімо, у нас є така папка під назвою current_data , яка містить три файли .xlsx :

Припустімо, ми хочемо використовувати VBA, щоб відкрити всі файли .xlsx у цій папці.

Для цього ми можемо створити такий макрос:

 Sub OpenAllFilesInFolder()

Dim ThisFolder As String
Dim ThisFile As String

'specify folder location and types of files to open in folder
ThisFolder = "C:\Users\bob\Documents\current_data"
ThisFile = Dir(ThisFolder & "\*.xlsx")

'open each xlsx file in folder
Do While ThisFile <> ""
    Workbooks.Open Filename:=ThisFolder & "\" & ThisFile
    ThisFile = Dir
Loop

End Sub

Коли ми запускаємо цей макрос, кожен файл із розширенням .xlsx у папці відкриватиметься один за іншим.

Зауважте, що якщо будь-які файли в папці вже відкриті, ці файли просто залишаться відкритими.

Примітка . Ви можете знайти повну документацію для методу Workbooks.Open у VBA тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

Як перейменувати файл за допомогою VBA
Як створити список файлів у папці за допомогою VBA
Як перевірити, чи файл існує за допомогою VBA

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *