VBA: список файлов и папок в папке
Описание
Мы создаем макросы, которые отображают списки всех файлов в папке, папок и файлов в папках на листах Excel.
Решение
Список всех файлов внутри папки
‘Список файлов внутри подфайла get_file_names () Dim objFSO As Object’ Эта переменная будет содержать FileSystemObject Dim objFolder As Object ‘Эта переменная будет содержать объект Folder’ Доступ к файловой системе компьютера Set objFSO = CreateObject («Scripting.FileSystemObject») ‘Создать набор объектов папки objFolder = objFSO.GetFolder («c: \ Users \ timur.kryukov \ Downloads \ comrade.excel ideas \ VBA. Tutorial. Список всех файлов в \ Directory \»)’ Строка для вывода = 2 ‘Цикл для каждого файла в папке Для каждого файла в objFolder.Files’ Имя файла ячеек (строка, 1) = file.Name ‘Путь к папке ячеек (строка, 2) = objFolder’ Перейти к следующей строке строка = строка + 1 следующий файл Концевой переходник AutoFit
Список всех папок внутри папки
‘Список папок в подпапке get_subfolder_names () Dim objFSO As Object Dim objFolder As Object’ Доступ к файловой системе компьютера Set objFSO = CreateObject («Scripting.FileSystemObject») ‘Создание объекта папки Set objFolder = objFSO.GetFolder («Usersukov \ timur.kry \ Downloads \ comrade.excel ideas \ VBA. Tutorial. Перечислите все файлы в \ Directory \ «) ‘Построчно output = 2’ Пройдите по каждой папке в папке Для каждой папки В подпапках objFolder. ‘Выходной файл Имя ячеек (строка , 1) = folder.Name ‘Путь к папке Cells (row, 2) = folder.Path’ Перейти к следующей строке row = row + 1 Next folder ‘Автоматически подбирать столбцы («A»). Вся колонка. Концевой переводник AutoFit
Список всех файлов в папке, папок и файлов внутри папок
‘Список папок и файлов в них Sub get_subfolder_and_file_names () Dim objFSO As Object Dim objFolder As Object’ Доступ к файловой системе компьютера Установить objFSO = CreateObject («Scripting.FileSystemObject») ‘Создать объект папки Установить objFolder = objFSO. «: \ Users \ timur.kryukov \ Downloads \ comrade.excel ideas \ VBA. Tutorial. Перечислите все файлы в \ Directory \») ‘Строка к строке вывода = 2’ Прокрутите каждую папку Для каждой подпапки в objFolder .subfolders ‘ Цикл для каждого файла Для каждого файла в подпапке. Файлы ‘Имя папки ячеек (строка, 1) = подпапка. Имя’ Имя файла ячеек (строка, 2) = файл. Имя ‘Путь к файлу / папка ячейки (строка, 3) = файл .Path ‘Перейти к следующей строке line = line + 1 Next file Next subfolder Для каждого файла In objFolder.Files’ Имя папки ячеек (строка, 1) = objFolder.Name ‘Имя файла ячеек (строка, 2) = file .Name’ Путь к файлу ячеек (строка, 3) = file.Path ‘Перейти к следующей строке строка = строка + 1 Следующий файл End Sub
Примененные функции
- .GetFolder
- Клетки
- CreateObject
- Для каждого
- Scripting.FileSystemObject