Excel vba список файлов в папке - Учим Эксель

Список файлов в папке

Время от времени бывает нужно заполучить на лист Excel список файлов в данной папке и ее подпапках. В моей практике такое встречалось не один раз, к примеру:

  • перечислить в приложении к договору на проведение тренинга список файлов из раздаточных материалов для особо щепетильных юристов в неких компаниях
  • сделать список файлов для ТЗ проекта
  • сопоставить содержимое папок (оригинал и бэкап, к примеру)

Для реализации схожей задачки можно употреблять несколько методов.

Метод 1. Скелет из шкафа — функция ФАЙЛЫ

Этот метод употребляет древнейшую функцию ФАЙЛЫ (FILES) , оставшуюся в Microsoft Excel с дальних 90-х. Вы не отыщите эту функцию в общем перечне функций, но для сопоставимости, она всё ещё остаётся снутри движка Excel, и мы полностью можем её употреблять.

1. В всякую ячейку листа (к примеру, в А1) введём путь к папке, список файлов из которой мы желаем получить.

Путь к папке

Направьте внимание, что путь должен оканчиваться шаблоном со звездочками:

  • *.* — любые файлы
  • *.xlsx — книжки Excel (лишь с расширением xlsx)
  • *.xl* — любые файлы Excel
  • *отчет* — файлы, содержащие слово отчет в заглавии

2. Сделаем именованный спектр при помощи вкладки Формулы — дальше клавиша Диспетчер имен — Сделать (Formulas — Names Manger — Create) . В открывшемся окне введем хоть какое имя без пробелов (к примеру Мои_файлы) и в поле спектра выражение:

Создаем именованный диапазон с функцией ФАЙЛЫ

Опосля нажатия на ОК будет сотворен именованный спектр с именованием Мои_файлы, где хранится список всех файлов из обозначенной в А1 папки. Остается их оттуда лишь извлечь.

3. Чтоб извлечь имена отдельных файлов из сделанной переменной, используем функцию ИНДЕКС (INDEX) , которая в Excel вытаскивает данные из массива по их номеру:

Список файлов

Если лениво созодать отдельный столбец с нумерацией, то можно пользоваться костылем в виде функции СТРОКИ (ROWS) , которая будет подсчитывать количество заполненных строк с начала перечня автоматом:

=ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3) )

Ну, и скрыть ошибки #ССЫЛКА! в конце перечня (если вы протягиваете формулу с припасом) можно обычной функцией ЕСЛИОШИБКА (IFERROR) :

= ЕСЛИОШИБКА( ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3)) ; «»)

Принципиальное примечание : формально функция ФАЙЛЫ относится к макро-функциям, потому нужно будет сохранить ваш файл в формате с поддержкой макросов (xlsm либо xlsb).

Метод 2. Готовый макрос для ленивых

Если вы знакомы с макросами (не в смысле их программирования, а в смысле копипастинга готовых кодов на VBA), то для вас, может быть, непревзойденно зайдёт маленький макрос, добавляющий в текущую книжку новейший пустой лист и выводящий на него список всех файлов с их параметрами из данной юзером папки.

Для прибавления макроса в вашу книжку нажмите сочетание кнопок Alt + F11 , либо клавишу Visual Basic на вкладке Разраб (Developer) , в открывшемся окне редактора Visual Basic вставьте новейший модуль через меню Insert — Module и скопируйте туда текст этого макроса:

Для пуска макроса нажмите сочетание кнопок Alt + F8 ,либо клавишу Макросы (Macros) на вкладке Разраб (Developer) , изберите наш макрос FileList и нажмите клавишу Выполнить (Run) . В диалоговом окне изберите всякую папку либо диск и — вуаля!

Если возжелаете, чтоб заместо пути к файлу в столбце B выводилась жива ссылка, то поменяйте 52-ю строчку

Cells(r, 2).Formula = FileItem.Path

Cells(r, 2).Formula = «=HYPERLINK(«»» & FileItem.Path & «»»)»

Метод 3. Мощь и краса — надстройка Power Query

Power Query — это весьма мощная и при всем этом бесплатная надстройка для Excel от Microsoft, упрощающая огромное количество задач по загрузке и трансформации данных. В нашей ситуации она тоже может здорово посодействовать.

Если у вас Excel 2016 либо новее, то Power Query уже встроена в Excel по дефлоту, потому просто на вкладке Данные изберите команду Сделать запрос / Получить данные — Из файла — Из папки (Create Query / Get Data — From file — From folder) . Если у вас Excel 2010-2013, то Power Query необходимо будет скачать с веб-сайта Microsoft и установить как отдельную надстройку и она покажется у вас в Excel в виде отдельной вкладки Power Query. На ней будет подобная клавиша Из файла — Из папки (From file — From folder) .

В открывшемся окне необходимо будет указать папку, содержимое которой мы желаем получить. Опосля нажатия на ОК Power Query обыщет обозначенную папку и все вложенные подпапки и выдаст на экран окно с подготовительным просмотром результатов:

Предварительный просмотр списка файлов в Power Query

Если наружный вид перечня вас устраивает, то можно смело нажимать понизу клавишу Загрузить (Load) , чтоб залить эти данные на новейший лист. Если же охото добавочно обработать список (удалить излишние столбцы, отобрать лишь нужные файлы и т.п.), то необходимо избрать команду Поменять / Конвертировать данные (Edit / Transform Data).

Поверх окна Excel раскроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:

Окно Power Query

Далее вероятны несколько вариантов:

    Если необходимы лишь файлы определенного типа, то их можно просто отобрать при помощи фильтра по столбцу Extension:

Фильтр по расширению файла

Фильтры по дате

Фильтры по пути и папкам

Опосля того, как нужные файлы отобраны, можно смело удалить ненадобные столбцы, щелкнув по заголовку столбца правой клавишей мыши и выбрав команду Удалить (Remove column ) . Это, к слову, уже никак не воздействует на фильтрацию либо сортировку нашего перечня:

Интересно почитать:  Excel как проверить циклические ссылки

Готовый список

Если в будущем планируется подсчитывать количество файлов в каждой папке (к примеру, для контроля поступивших заявок либо подсчета статистики по заявкам), то имеет смысл добавочно создать ещё пару действий:

  • Щелкните правой клавишей мыши по столбцу Folder Path и изберите команду Дублировать столбец (Duplicate Column) .
  • Выделите скопированный столбец и на вкладке Преобразование (Transform) изберите Поделить столбец — По разделителю (Split Column — By delimiter)

Мы получим рядом с нашими данными еще несколько столбцов, где будут продублированы имена вложенных папок — это понадобится нам чуток позднее для подсчета статистики при помощи сводной таблицы:

Разделить столбец пути по разделителю

Получившиеся столбцы можно переименовать (Диск, Папка1, Папка2 и т.д.), просто щёлкнув два раза по заголовку всякого.

И, в конце концов, когда список готов, то его можно выгрузить на лист при помощи команды Основная — Закрыть и загрузить — Закрыть и загрузить в. (Home — Close & Load — Close & Load to. ) :

Выгруженные на лист результаты

И, само-собой, сейчас можно выстроить по нашей таблице сводную (вкладка Вставка — Сводная таблица), чтоб просто подсчитать количество файлов в каждой папке:

Сводная со статистикой по каждой папке

Доп призом можно создать очередной столбец с функцией ГИПЕРССЫЛКА (HYPERLINK) , которая создаст прекрасные стрелочки-ссылки для мгновенного перехода к любому файлу:

Функция ГИПЕРССЫЛКА

Мелочь, а приятно 🙂

И вдвойне приятно, что в будущем, при изменении содержимого начальной папки, довольно будет просто щелкнуть мышью по нашей таблице и избрать команду Обновить (Refresh) — и Power Query выполнит всю цепочку запрограммированных нами единожды действий уже автоматом, отобразив все конфигурации в составе папки.

Как получить список файлов в папке (к примеру, заглавие музыки и кинофильмов перенести в текст и всё упорядочить. )

spisok-faylov

Вопросец от юзера

Здрасти.

Помогите с одним вопросцем. У меня есть несколько наружных дисков и на их записаны киноленты. Я желаю получить список всех заглавий (имен) этих файлов в тексте, чтоб его распечатать и положить рядом в коробку с диском (скажем, навести порядок!).

Это серьезно бы облегчило поиск и подключение подходящего диска.

Эту задачку можно решить несколькими методами (невзирая на то, что я ниже приведу всепригодные варианты — в зависимости от вашей версии Windows, часть из их может не сработать. ). Так что инспектируйте сходу несколько из их. 👌

ускорение ПК

Методы получить список имен файлов

Вариант 1 (при помощи Total Commander)

Более обычный и желательный вариант (к тому же буквально работающий во всех версиях ОС) — пользоваться помощью 👉 Total Commander (ссылка на офиц. веб-сайт). Если кто не понимает — это спец. программка для работы с файлами (кандидатура проводнику).

Запустив Total Commander, перейдите в подходящий каталог (в тот, где у вас хранятся киноленты, к примеру) и выделите все файлы (для этого довольно надавить Ctrl+A).

Выделяем все файлы в нужном каталоге

Выделяем все файлы в подходящем каталоге

Дальше в меню «Выделение» изберите опцию «Сохранить выделение в файл. « (в неких версиях программки есть возможность скопировать имена файлов в буфер — если сделаете так, то позже откройте документ Word и вставьте список, нажав Ctrl+V ).

Сохранить выделение в файл (Total Commander)

Сохранить выделение в файл (Total Commander)

Фактически, приобретенный текстовый файл можно открыть в любом блокноте (я использую Notepad++), ну и опосля распечатать список (Ctrl+P) . 👌

Текстовый файл можно открывать - список готов!

Текстовый файл можно открывать — список готов!

Вариант 2 (через браузер)

Для этого нам пригодиться запустить какой-либо современный 👉 браузер (я инспектировал на Chrome и Firefox).

Опосля откройте проводник и перейдите в папку с подходящими для вас файлами — необходимо будет скопировать путь до нее, надавить сочетание Ctrl+C (адресок, вида: «C:UsersalexVideosФильмы» )

Открываем каталог

Опосля, вставить этот скопированный «путь» в адресную строчку браузера и надавить Enter. В итоге вы увидите, что обозреватель покажет для вас список всех файлов и дату крайнего конфигурации.

Сейчас довольно выделить всё необходимое на страничке и скопировать это (👇).

Открываем путь в Chrome

Открываем путь в Chrome

Потом скопированный список идеальнее всего вставить (сочетание Ctrl+V) в Excel (либо 👉 его аналоги). Это удобнее тем, что в Excel вы просто можете удалить ненадобные для вас столбики (с датой, к примеру) .

Вставляем список в Excel для предстоящей работы.

Вариант 3 (список со вложенными файлами и папками)

Этот метод всепригодный, и к тому же дозволяет получить не только лишь список файлов из текущего каталога, да и из всех вложенных.

К примеру, есть у вас в каталоге «Видео» отдельная папка «Кино 90-х» , в которой 2 10-ка др. кинофильмов — перечисленные выше методы бы не дозволили выяснить их заглавие (из приобретенного перечня), а этот дозволит!

Для работы нам пригодиться 👉 командная строчка (ничего сложного там не будет!) .

В ней необходимо поочередно ввести две команды, опосля каждой надавить Enter:

  1. cd C:UsersalexVideosФильмы (заместо «C:UsersalexVideosФильмы» укажите собственный каталог) ;
  2. dir /b /s | sort > List.txt (эта команда создаст файл «List.txt» в избранной вами папке со всеми файлами и каталогами, что в нем есть! Не считая этого, она отсортирует список от А к Я).
Интересно почитать:  Как в excel убрать уровни

CMD - открываем каталог, получаем список

CMD — открываем каталог, получаем список

Файл-список готов!

Как убрать путь (C:Video) из перечня

К слову, если в перечне файлов для вас посреди наименования кинофильмов (файлов) не нужен их путь — то его просто убрать. Для этого в Notepad++ довольно:

  • надавить на Ctrl+F ;
  • в окне «Подмена» в строчку «отыскать» указать путь (который повторяется в каждой строке);
  • в строке «Поменять на» проверить, чтоб была пустота;
  • и надавить клавишу «поменять все» . В итоге: в вашем перечне будут лишь имена (без пути)!

Убираем путь до каталога в блокноте

Убираем путь до каталога в блокноте

Вариант 4 (без доп. софта)

Этот метод работает не во всех версиях ОС Windows (в 10-ке все OK). Зато он резвый и не просит совершенно никакого доп. софта.

  1. зайти в подходящий каталог;
  2. выделить файлы (Ctrl+A);
  3. зажать кнопку Shift (левую);
  4. надавить ПКМ (правую клавишу мыши), не отпуская Shift;
  5. из показавшегося меню проводника избрать опцию «Копировать как путь» . Сейчас в буфере обмена все есть имена файлов из каталога!

Выделяем и копируем путь

Выделяем и копируем путь

Сейчас можно открыть блокнот либо этот же Word и вставить список (Ctrl+V).

Вставляем скопированный список

Вставляем скопированный список

Если для вас мешает в каждой строке путь («C:Users») — то как его убрать см. чуток выше.

Получение перечня файлов из папки в текстовом виде

Для определённых целей может потребоваться составить список файлов, содержащихся в папке. Если таких незначительно, то задачку можно выполнить вручную без особенных затруднений, но если в папке 10-ки, сотки либо даже тыщи файлов, то пробовать составить их список вручную это никчемная растрата времени. Можно ли этот процесс как-то заавтоматизировать?

Как сделать список файлов в папке

Автоматическое создание перечня файлов

К счастью, функционал Windows и остальных программных решений, дозволяет создавать списки файлов в папках в автоматическом порядке. Данные списки можно позже будет без заморочек скопировать в текстовый файл и редактировать при необходимости.

Разглядим все имеющиеся методы сотворения такового перечня.

Вариант 1: «Командная строчка»

Этот метод является обычным и не просит от юзера каких-то особенных умений, кроме базисного владения «Командной строчкой». Итак, {инструкция} к данному варианту смотрится последующим образом:

  1. Перейдите в ту папку, список файлов из которой вы желали бы получить.
  2. Сейчас зажмите Shift на клавиатуре и нажмите правой клавишей мыши по пустому месту в окне «Проводника».
  3. Обязано покажется контекстное меню, где требуется избрать вариант «Пуск командной строчки» либо «Открыть окно установок тут». В случае с крайними версиями Windows 10 такового пт может не быть. Заместо этого необходимо надавить на «Запустить окно PowerShell тут». PowerShell – это новейший аналог «Командной строчки», который Майкрософт интенсивно вводит в крайние версии Windows 10. На самом деле различий в функционале нет никаких.

Открытие командной строки через контекстное меню

  • dir /b>spisok.txt Данная команда сохраняет лишь имена файлов в файл spisok.txt. Вы сможете заместо него указать хоть какое другое заглавие, какое для вас будет комфортно, но учтите, что оно не обязано содержать кириллических знаков;
  • dir /s>spisok.txt Сохраняет не только лишь имена файлов, содержащихся в папке, да и имена папок и подпапок, которые могут быть размещена в главный папке.

Ввод команды на создание списка файлов из командной строки

Всю информацию из него можно скопировать в документ Word, потому что крайний удобнее редактировать. К тому же, если в папке содержались файлы либо остальные папки в заглавии которых присутствовали кириллические знаки, то в «Блокноте» таковые могут отображаться неправильно, потому что нужные шифровки не поддерживаются.

Вариант 2: Внедрение BAT-файла

Данный метод тоже не различается какой-нибудь сложностью, плюс даёт ощутить себя незначительно программером. Сущность заключается в разработке специального файла с методом, который выведет список всех частей в папке в отдельный текстовый файл. Итак, разглядим аннотацию к этому варианту наиболее тщательно:

    Сделайте в любом месте на компе текстовый файл. Для этого нажмите правой клавишей мыши и в меню изберите пункт «Сделать». Из открывшегося подменю изберите вариант «Текстовый файл».

Создание текстового документа

echo %date% %time% >spisok.txt

Написание алгоритма для BAT-файла

Сохранение текстового документа как

Сохранение текстового файла как BAT-файла

Содержимое данного файла также можно перенести в текстовый документ MS Word. Но в этом случае заморочек с шифровкой и неправильным отображением кириллических знаков не наблюдается.

Вариант 3: DirLister

Данное бесплатное ПО (то есть программное обеспечение — комплект программ для компьютеров и вычислительных устройств) не требуется установки на комп и с его помощью вы сможете сделать список всех частей в той либо другой папке. {Инструкция} по её использованию смотрится последующим образом:

  1. Перейдите на официальный веб-сайт разраба и скачайте архив с программкой.
  2. Распакуйте архив, вытащив от туда исполняемый EXE-файл.
  3. Запустите его.

Работа с DirLister

Вариант 4: Total Commander

Total Commander – это пользующийся популярностью файловый менеджер, где юзер может стремительно получить и скопировать всю основную информацию о файлах, также о содержимом папок. В этом случае получить список файлов, находящихся в папке, можно последующим образом:

  1. В окне Total Commander откройте подходящую папку.
  2. В верхнем меню нажмите на пункт «Выделение». Покажется контекстное меню, где необходимо надавить на вариант «Выделить всё».
  3. Потом в этом же меню изберите пункт «Копировать имена файлов в буфер обмена».

Окно Total-Commander

Вариант 5: Браузер

Во всех современных браузерах, будь то Opera, Гугл Chrome, Yandex и т.д., есть функция просмотра содержимого папок и неких файлов, расположенных на компе.

{Инструкция} к этому варианту смотрится последующим образом:

  1. Откройте «Проводник». Изберите с помощью щелчка левой клавишей мыши ту папку, которую желаете просмотреть в браузере.
  2. Перетащите эту папку в хоть какой удачный вам браузер. В этом случае рассматривается вариант с Opera.

Открытие списка файлов через браузер

Это были все методы, дозволяющие вывести список содержимых в папке файлов в отдельный текстовый документ.

VBA Удалить файл | Как удалить файлы в папке при помощи кода VBA?

В VBA мы можем удалить хоть какой файл, присутствующий на компе, используя коды VBA, и код, который употребляется для удаления хоть какого файла, известен как команда Kill, способ удаления хоть какого файла — это поначалу, мы указываем путь к файлу, что значит, где файл находится на компе, и потом мы используем команду Kill, чтоб удалить файл.

Как удалить файлы при помощи кода VBA?

VBA — это непростая вещь сначала, но по мере того, как вы проводите больше времени с VBA, вы начнете обожать его, как и я. Мы можем открывать файлы из иной папки на компе, мы можем работать с ними, и сейчас мы можем также удалять файлы, используя шифровку VBA. В данной для нас статье мы покажем для вас, как вы сможете удалять файлы при помощи кода VBA в определенной папке.

Когда мы работаем с большенными проектами, мы обычно создаем много промежных файлов для поддержки нашего процесса. Опосля того, как вся работа будет изготовлена, нам необходимо удалить эти файлы, чтоб избежать неурядицы в будущем.

И один из сценариев: когда мы обычно получаем электрическое письмо, мы сохраняем вложения для нашей обыкновенной работы либо просто желаем узреть отчет за этот момент времени, а позднее нам может потребоваться удалить эти файлы.

Удаление этих файлов вручную востребует времени, либо мы можем запамятовать о сохранении, и они будут занимать пространство на нашем компе. Мы покажем для вас, как удалить эти файлы при помощи обычных кодов VBA.

Способ Kill для удаления файлов в папке с внедрением кода VBA

Обычная функция KILL удалит папку, определенный файл, все файлы Excel и т. Д. Посмотрите на синтаксис способа KILL в VBA. Способ Kill не может удалять файлы, доступные лишь для чтения.

Имя пути : путь — это не что другое, как путь к папке на компе для удаления файлов.

Примечание. Имя пути также может содержать подстановочные знаки. Мы можем употреблять звездочку (*) и вопросительные знаки (?) В качестве подстановочных символов в Excel.

Звездочка (*) полезна для сравнения хоть какой строчки хоть какой длины, даже если рассматривается ноль.

Символ вопросца (?) Полезен для соответствия лишь одному символу.

Удалить конкретное название файла

К примеру, у меня есть папка, как показано ниже.

В данной для нас папке я желаю удалить файл с именованием «Файл 5». Начните код с функции KILL.

Код:

Скопируйте и вставьте путь к папке.

И вставьте в двойные кавычки.

Сейчас поставьте еще одну оборотную косую черту () и введите название файла с расширением.

Когда вы запустите этот код, он удалит файл с именованием «File 5.xlsx» в обозначенном пути к папке.

Удалить все файлы Excel

Чтоб удалить все файлы Excel в папке при помощи VBA, нам необходимо употреблять подстановочные знаки с функцией KILL. Опосля указания пути к папке нам необходимо указать файл как «* .xl *».

Код:

Когда вы запустите этот код, это удалит все файлы Excel в папке.

Мы лицезрели, как можно удалить один файл Excel и все файлы Excel. Но если мы желаем удалить все файлы в папке, как мы можем это удалить. Так как мы используем Excel VBA, можно ли удалить остальные файлы?

Ответ — да . Используйте приведенный ниже код, чтоб удалить все файлы в папке.

Код:

Удалить лишь всю папку

Можно ли удалить саму папку?

Да, это может быть.

Для этого 1-ое, что нам необходимо создать, это удалить все файлы в папке при помощи функции KILL, а потом для удаления папки нам необходимо употреблять еще одну функцию под заглавием RmDir .

Код:

Тут RmDir удалит лишь пустую папку, если есть какая-либо подпапка, он не может их удалить.

Удалить все текстовые файлы в папке

Чтоб удалить все текстовые файлы в папке, используйте приведенный ниже код.

Код:

Удалить файлы лишь для чтения

Как я уже произнес, функция KILL не может удалять файлы «лишь для чтения» в папке. В таком случае нам необходимо употреблять две остальные функции: «Dir $» и «SetAttr». Ниже приведен пример кода для удаления файлов, доступных лишь для чтения.

Код:

You can download this VBA Delete File Excel Template from here – VBA Delete File Excel Template

Ссылка на основную публикацию
Adblock
detector