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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *