Список файлов в папке
Иногда бывает необходимо заполучить на лист Excel список файлов в заданной папке и ее подпапках. В моей практике такое встречалось неоднократно, например:
- перечислить в приложении к договору на проведение тренинга список файлов из раздаточных материалов для особо щепетильных юристов в некоторых компаниях
- создать список файлов для ТЗ проекта
- сравнить содержимое папок (оригинал и бэкап, например)
Для реализации подобной задачи можно использовать несколько способов.
Способ 1. Скелет из шкафа — функция ФАЙЛЫ
Этот способ использует древнюю функцию ФАЙЛЫ (FILES), оставшуюся в Microsoft Excel с далеких девяностых. Вы не найдете эту функцию в общем списке функций, но для совместимости, она всё ещё остаётся внутри движка Excel, и мы вполне можем её использовать.
Механизм таков:
1. В любую ячейку листа (например, в А1) введём путь к папке, список файлов из которой мы хотим получить.
Обратите внимание, что путь должен оканчиваться шаблоном со звездочками:
- *.* — любые файлы
- *.xlsx — книги Excel (только с расширением xlsx)
- *.xl* — любые файлы Excel
- *отчет* — файлы, содержащие слово отчет в названии
и т.д.
2. Создадим именованный диапазон с помощью вкладки Формулы — далее кнопка Диспетчер имен — Создать (Formulas — Names Manger — Create). В открывшемся окне введем любое имя без пробелов (например Мои_файлы) и в поле диапазона выражение:
=ФАЙЛЫ(Лист1!$A$1)
После нажатия на ОК будет создан именованный диапазон с именем Мои_файлы, где хранится список всех файлов из указанной в А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 и скопируйте туда текст этого макроса:
Sub FileList() Dim V As String Dim BrowseFolder As String 'открываем диалоговое окно выбора папки With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Выберите папку или диск" .Show On Error Resume Next Err.Clear V = .SelectedItems(1) If Err.Number <> 0 Then MsgBox "Вы ничего не выбрали!" Exit Sub End If End With BrowseFolder = CStr(V) 'добавляем лист и выводим на него шапку таблицы ActiveWorkbook.Sheets.Add With Range("A1:E1") .Font.Bold = True .Font.Size = 12 End With Range("A1").Value = "Имя файла" Range("B1").Value = "Путь" Range("C1").Value = "Размер" Range("D1").Value = "Дата создания" Range("E1").Value = "Дата изменения" 'вызываем процедуру вывода списка файлов 'измените True на False, если не нужно выводить файлы из вложенных папок ListFilesInFolder BrowseFolder, True End Sub Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long Set FSO = CreateObject("Scripting.FileSystemObject") Set SourceFolder = FSO.getfolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 'находим первую пустую строку 'выводим данные по файлу For Each FileItem In SourceFolder.Files Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DateCreated Cells(r, 5).Formula = FileItem.DateLastModified r = r + 1 X = SourceFolder.Path Next FileItem 'вызываем процедуру повторно для каждой вложенной папки If IncludeSubfolders Then For Each SubFolder In SourceFolder.SubFolders ListFilesInFolder SubFolder.Path, True Next SubFolder End If Columns("A:E").AutoFit Set FileItem = Nothing Set SourceFolder = Nothing Set FSO = Nothing End Sub
Для запуска макроса нажмите сочетание клавиш 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 обшарит указанную папку и все вложенные подпапки и выдаст на экран окно с предварительным просмотром результатов:
Если внешний вид списка вас устраивает, то можно смело жать внизу кнопку Загрузить (Load), чтобы залить эти данные на новый лист. Если же хочется дополнительно обработать список (удалить лишние столбцы, отобрать только нужные файлы и т.п.), то нужно выбрать команду Изменить / Преобразовать данные (Edit / Transform Data).
Поверх окна Excel откроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:
Дальше возможны несколько вариантов:
- Если нужны только файлы определенного типа, то их можно легко отобрать с помощью фильтра по столбцу Extension:
- Аналогичным образом фильтрами по столбцам Date accessed, Date modified или Date created можно отобрать файлы за нужный период (например, созданные только за последний месяц и т.п.):
- Если нужно получить данные не из всех папок, то фильтруем по столбцу Folder Path, чтобы оставить только те строки, где путь содержит/не содержит нужные имена папок:
- Там же можно выполнить сортировку файлов по любому столбцу, если требуется.
После того, как необходимые файлы отобраны, можно смело удалить ненужные столбцы, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить (Remove column). Это, кстати, уже никак не повлияет на фильтрацию или сортировку нашего списка:
Если в будущем планируется подсчитывать количество файлов в каждой папке (например, для контроля поступивших заявок или подсчета статистики по заявкам), то имеет смысл дополнительно сделать ещё пару действий:
- Щелкните правой кнопкой мыши по столбцу Folder Path и выберите команду Дублировать столбец (Duplicate Column).
- Выделите скопированный столбец и на вкладке Преобразование (Transform) выберите Разделить столбец — По разделителю (Split Column — By delimiter)
Мы получим рядом с нашими данными еще несколько столбцов, где будут продублированы имена вложенных папок — это пригодится нам чуть позже для подсчета статистики с помощью сводной таблицы:
Получившиеся столбцы можно переименовать (Диск, Папка1, Папка2 и т.д.), просто щёлкнув дважды по заголовку каждого.
И, наконец, когда список готов, то его можно выгрузить на лист с помощью команды Главная — Закрыть и загрузить — Закрыть и загрузить в… (Home — Close & Load — Close & Load to…):
И, само-собой, теперь можно построить по нашей таблице сводную (вкладка Вставка — Сводная таблица), чтобы легко подсчитать количество файлов в каждой папке:
Дополнительным бонусом можно сделать еще один столбец с функцией ГИПЕРССЫЛКА (HYPERLINK), которая создаст красивые стрелочки-ссылки для моментального перехода к каждому файлу:
Мелочь, а приятно
И вдвойне приятно, что в будущем, при изменении содержимого исходной папки, достаточно будет просто щелкнуть мышью по нашей таблице и выбрать команду Обновить (Refresh) — и Power Query выполнит всю цепочку запрограммированных нами единожды действий уже автоматически, отобразив все изменения в составе папки.
Ссылки по теме
- Что такое макрос, куда вставлять код макроса на Visual Basic
- Создание резервных копий ценных файлов
- Что такое Power Query и что можно делать с её помощью
Самый простой способ создания списка файлов, расположенных в папке.
Поделюсь простым проверенным способом создания списка файлов. Пошаговое руководство.
Шаг 1. Войти в папку список файлов из которой вы хотите сформировать.
Шаг 2. Кликнуть правой кнопкой по пустому полю в папке (не по файлу)
Шаг 3. Из выпадающего мену выбрать пункт «Создать»>> «Текстовый документ»
Шаг 4. Открыть появившийся текстовый документ и записать в него три строчки с кодом:
- chcp 1251
- echo From Ruexcel.ru %date% %time% >spisok_faylov.txt
- dir /b /d >> spisok_faylov.txt
Записать код в текстовый документ
Шаг 5. Закрыть с сохранением документ.
Шаг 6. Переименовать расширение файла с «TXT» на «BAT» и нажать кнопку «Enter»
Шаг 7. Запустить полученный файл.
После запуска .bat файла в папке, из которой вы его запустили появится текстовый документ со списком файлов хранящихся в папке, который будет называться «spisok_faylov.txt».
Перенос списка в программу Excel.
Шаг 1. Открыть текстовый документ.
Шаг 2. Выделить левой кнопкой мыши список.
Шаг 3. Нажав правой кнопкой мыши по выделению выбрать пункт «Копировать»
Шаг 4. Открыть документ Excel.
Шаг 5 Кликнуть правой кнопкой мыши в любую ячейку и выбрать из выпадающего меню пункт «Вставить»
Microsoft Excel
трюки • приёмы • решения
Как получить список имен файлов, содержащихся в папке, а затем отобразить этот список на листе Excel
В этой статье будет рассказано, как получить список имен файлов, содержащихся в каталоге, а затем отобразить этот список на листе. Данный способ связан с использованием макрофункции Excel 4 XLM в именованной формуле. Такой метод удобен, поскольку позволяет относительно легко выстроить на листе список имен файлов — обычно для этого требуются сложные макросы VBA.
Откройте новую книгу, а затем выполните следующие действия для создания именованной формулы.
- Выполните команду Формулы ► Присвоить имя, чтобы открыть диалоговое окно Создание имени.
- Впишите в поле Имя название Список.
- Введите следующую формулу в поле Диапазон (рис. 8.1): =ФАЙЛЫ(Лист1!$A$1) .
- Нажмите ОК, чтобы закрыть окно Создание имени.
Рис. 8.1. Работа с диалоговым окном для создания именованной формулы
Обратите внимание: функция ФАЙЛЫ не относится к стандартным функциям рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для использования на специальном листе макросов. Она принимает один аргумент (путь к каталогу и описание файла) и возвращает массив имен файлов, содержащихся в данном каталоге и удовлетворяющих описанию файла. Обычные формулы рабочего листа не могут использовать подобные XLM-функции, а именованные формулы — могут.
Определив именованную формулу, введите в ячейку А1 путь к каталогу и описание файла. Например: C:Excelexpert.ru* *. Далее формула отображает первый найденный файл: =ИНДЕКС(Список;1) . Если изменить второй аргумент на 2, то будет отображен второй найденный файл и т. д. На рис. 8.2 приведен пример. Путь и описание файла указаны в ячейке А1. В ячейке А2 содержится следующая формула, скопированная далее по столбцу: =ИНДЕКС(Список;СТР0КА()-1) . Функция СТРОКА, используемая здесь, генерирует ряд последовательных натуральных чисел: 1,2,3 и т. д. Эти числа используются в качестве второго аргумента функции ИНДЕКС.
Рис. 8.2. Использование XLM-макроса в именованной формуле позволяет создать на листе список имен файлов
Обратите внимание: в ячейке А17 (и ниже) происходит ошибка. Дело в том, что в каталоге содержится всего 19 файлов и формула пытается отобразить имена несуществующих. Если изменить каталог или описание файла в ячейке А1, то формулы обновляются и выводят имена новых файлов.
Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm или *.xls).
Список файлов на листе Excel
В Excel существуют неочевидная возможность вывести на лист список имен файлов из заданной папки. [1] Способ связан с использованием макрофункции (подробнее см. Функция Получить.Ячейку). Этот метод существенно проще написания макроса VBA. Начните с создания именованной формулы. Пройдите по меню Формулы –> Определенные имена –> Присвоить имя, и в окне Создание имени введите данные, как указано на рисунке:
Рис. 1. Диалоговое окно создания именованной формулы
Скачать заметку в формате Word или pdf, примеры в формате Excel (с макросами)
Обратите внимание: функция =ФАЙЛЫ(Лист1!$A$1) не относится к стандартным функциям рабочего листа. Это макрофункция, написанная в старом XLM-стиле и предназначенная для использования на специальном листе макросов. Она принимает один аргумент – путь к каталогу и описание файла (или файловый шаблон) и возвращает массив имен файлов, содержащихся в данном каталоге и удовлетворяющих описанию файла (шаблону). Обычные формулы рабочего листа не могут использовать подобные XLM- функции, а определенные имена — могут.
Определив именованную формулу, введите в ячейку А1 путь к каталогу и описание файла. Например, D:Dropbox!Сайт7_Библиотека*.*
Следующая формула отобразит первый найденный файл: =ИНДЕКС(Список;1). Если изменить второй аргумент на 2, то будет отображен второй найденный файл и т.д. Следующая формула, введенная в ячейку В1 (рис. 2), и скопированная вдоль столбца, позволит вывести все файлы: =ИНДЕКС(Список;СТРОКА()).
Рис. 2. Использование xlm-макрофункции в именованной формуле позволяет создать на листе список имен файлов
Функция СТРОКА, используемая здесь, генерирует ряд последовательных натуральных чисел: 1, 2, 3 и т.д. Эти числа используются в качестве второго аргумента функции ИНДЕКС. Когда все файлы будут выведены на лист, формула начнет возвращать ошибку: #ССЫЛКА! Если изменить каталог или описание файла в ячейке А1, то формулы обновляются и выводят имена новых файлов.
Книгу Excel нужно сохранить как файл с поддержкой макросов (в формате *.xlsm).
[1] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 44, 45
Получение списка файлов в папке и подпапках средствами VBA
Функция VBA для получения списка файлов из папки,
с учётом выбранной глубины поиска в подпапках
Пример в файле FilenamesCollection.xls выводит список файлов на чистый лист новой книги (формируя заголовки)
Пример в файле FilenamesCollectionEx.xls более функционален — он, помимо списка файлов из папки, отображает размер файла, и дату его создания, а также формирует в ячейках гиперссылки на найденные файлы.
Вывод списка производится на лист запуска, параметры поиска файлов задаются в ячейках листа (см. скриншот)
ПРИМЕЧАНИЕ: Если вы выводите на лист список имен файлов картинок (изображений), то при помощи этой надстройки вы сможете вставить сами картинки в ячейки соседнего столбца (или в примечания к этим ячейкам)
выполненной на основе функции FilenamesCollection,
а также со способом добавления в таблицу значений ячеек из найденных файлов
‘ Пример использования функции в макросе:
Этот код позволяет осуществить поиск нужных файлов в выбранной папке (включая подпапки), и выводит полученный список файлов на лист книги Excel:
Ещё один пример использования:
PS: Найти подходящие имена файлов в коллекции можно при помощи следующей функции:
- 234686 просмотров
Комментарии
Так вроде и то и другое выводится
Код открыт ведь, — поменяйте как вам надо, если лишний столбец мешает.
Возможно я слепой или плохо читаю, но я не увидел что-то подобное в коментах. Поэтому мой вопрос следующий: можно как-то сделать так, чтобы выводило только название файла а не весь путь?
Отбой, разобрался. Виноват оказался не этот макрос, а тот, который его результаты использовал. Мораль — люди, не юзайте Dir, если вам нужно что-то сделать с папкой, к которой он обращается.
В моём макросе нет MoveFolder — так что мой макрос точно не виноват в вашей проблеме.
Проблема — либо в неверном использовании MoveFolder (не то или не туда перемещаете), либо нет прав доступа на перемещение в заданное место.
Игорь, всё это прекрасно. Непонятно только, что нужно сделать с Вашим макросом, чтобы после его вызова с папкой можно было бы ещё и что-нибудь сделать, например, переместить. Сейчас после вызова FSO.MoveFolder вылетает с ошибкой Access denied. Проверено, виноват именно Ваш макрос — если закомментировать ТОЛЬКО его вызов, FSO.MoveFolder отрабатывает нормально.
Спасибо, ОГРОМНОЕ.
Выручайте ребята! макрос в целом отличный, но для моих целе нужно немного переделать.
Нужно чтоб все файлы находящиеся в каждой папке были в одной ячейке через разделитель ( | )
Например:
C:images4-20161032g.jpg|C:images4-20161033g.jpg|C:images4-20161033g.jpg
Да, сделал.
Высылайте на почту подробное задание (что и как должно выглядеть, для чего это вообще нужно, и т.д.)
Тогда озвучу сроки и стоимость
Добрый день!
Скажите, пожалуйста, сделали ли вы макрос для Александра?
Если да, то за сколько его можно приобрести?
Если нет, то какие сроки выполнения?
Спасибо!
Напишите на почту стоимость и сроки выполнения
Александр, в этом случае нужен более сложный макрос.
Могу сделать под заказ.
Здравствуйте, Макрос хороший. Всё отлично выводит. Но как сделать дерево? Имеется несколько папок, далее нажимаешь на папку или плюс или еще что-то, она открывается, появляется подпапки, опять жмешь на подпапку появляются подпапки и т.д.
Спасибо, отличный макрос
В ответ на:
Андрей, 15 Мар 2018 — 15:13.#3
Добрый день.
файл 148 знаков (рус.буквы) не обрабатывается,
и сам файл на сервере (если файл на раб.столе то все работает)
какая максимальная длина имени и можно-ли ее обойти.
Ограничение на полное имя файла, включая расширение — 259 символов. Соответственно, все файлы, имеющие более длинное имя при выполнении
Set curfold = FSO.GetFolder(FolderPath)
будут проигнорированы. Тестировал на EX2010, W7 и MSServer 2008. У меня из 28 (curfold.Соunt) файлов реально в коллекции только 15 (curfold.items(1). curfold.items(15))
А как сделать макрос чтобы он мне показал только пустые папки?
Ограничений по длине имени файла, вроде как, нет (по крайней мере, за много лет использования этого кода на тысячах компов, с проблемами не сталкивался)
Добрый день.
файл 148 знаков (рус.буквы) не обрабатывается,
и сам файл на сервере (если файл на раб.столе то все работает)
какая максимальная длина имени и можно-ли ее обойти.
Адаптировал к access — все работает, спасибо, очень помогло
Ринат, посмотрите макрос обработки файлов из папки.
Там выводится диалоговое окно папки, и обрабатываются все файлы в ней (независимо от имён файлов)
Добрый день!
Такой вопрос, в отделе каждый месяц сотрудник ведет отчет по своей работе в табличной форме в ексель каждый в своем файле, а начальству необходимо данные отчеты ввести в свою итоговую таблицу для себя, то есть скопировать данные отчетов с файлов каждого сотрудника в свой отдельный файл. Я создал макрос, для скопирования данных с файлов каждого сотрудника в таблицу файла начальству указывая путь к каждому файлу. Но при этом возникает определенные неудобства, каждый месяц нужно пути к файлам прописывать заново, так как на следующий месяц создаются новые файлы по отчетам, и пути к ним необходимо обновлять. Подскажите пожалуйста, как можно сделать так, чтоб пути к файлам привязывались не по конкретному расположению файла, а например указыванием месяца и года можно было сформировать единый отчет на определенный месяц. Спасибо заранее!
Большое спасибо автору! Список использую для каталогизации архива сканов документов.
Да, можем сделать такой макрос под заказ.
Минимальная стоимость заказа 1500 руб.
добрый день
подскажите можно ли написать макрос под следующие цели
необходимо что бы в ячеке которую выделил вписывались имена файлов фотографий, если их несколько выбираешь тогда добавляются все через запятую или точку запятую только имя файла и расширение
например как вставить фото в ячейку но вставляется не фото а именно имя
или например на основе Вашего FilenamesCollectionEx.xls нашел все файлы на диске/папке нужные -нажимаешь на файл и ты нужен выбрать ячейку куда вписать имя файла
заранее спасибо
У меня почему-то размер файла в байтах выводится абсолютно иной, иногда даже с отрицательным значением.
Пример:
1.вес файла 3 840 327 Кб или 3,66 Гб, а таблица выдает «-362 472 675»
2.вес файла 5 082 087 Кб или 4,84 Гб, таблица выдает «909 089 137»
Василий, да, можно добавить.
Пример код можете здесь посмотреть:
http://excelvba.ru/code/MCI
Добрый день! Подскажите, возможно ли добавить столбцы «продолжительность» и «ширина кадра», которые имеются в данных файлов?
Здравствуйте, Елизавета.
Причин может быть несколько, навскидку:
— проблемный файл, или файл, к которому у вас нет доступа (ошибка 53 — файл не найден)
— слишком длинное имя папки (много уровней вложенности) и/или файла
— сбой в файловой системе
— ошибка в макросе (что-то в коде не учтено)
Техподдержка по бесплатным макросам не предоставляется
Если готовы оплатить помощь, — звоните в скайп, могу подключиться к вашему компу и всё исправить.
Игорь, огромное вам спасибо за эту работу!
Несколько лет использую ваш файл для классификации фильмов, но пару недель назад почему-то он перестал работать. Никакой критичности в этом нет, т.к. главное исправила благодаря обсуждениям тут, но мне непонятно и жутко интересно, почему так происходит. Может, это связано с активацией офиса(примерно в то же время было)? Офис 10й.
У меня 2 вкладки в этом файле, обновляю список на 2й, и затем новые позиции копирую в первую (накапливаю). При обновлении списка, после 60-70 позиций, макрос останавливается и сообщает об ошибке Run-time error 53 со сслыкой на строку ДатаСоздания = FileDateTime(ПутьКФайлу). Дело не файле, т.к. его удаление не помогло. Я добавила в скрипт «On Error Resume Next», список обновляется до конца, но перестают запускаться фильмы по гиперссылке в 1й вкладке «не удается открыть указанный файл» (во 2й работают), хотя файл и макросы одни и те же. Знаете, в чем может быть причина?
5 способов получить список файлов в папке
У некоторых пользователей, при работе на компьютере, возникает необходимость получить список файлов в папке. Такой список может быть нужен для разных целей: для каталогизации файлов в папках, для сравнения содержимого в папках, для того, чтобы составить список фильмов, музыкальных композиций, электронных книг и т. п.
Во многих случаях, количество файлов может быть очень большим, поэтому вручную составить полный список находящихся в папке файлов будет проблематично. Предположим, в папке на вашем компьютере хранится электронная библиотека, или вы имеете большое собрание фильмов. Даже увлеченному человеку запомнить все содержимое папки или диска будет нереально.
Выходом из этой ситуации будет создание списка файлов, находящихся в данной папке, а потом сохранение этого списка в текстовый файл. В дальнейшем, полученный список можно будет отредактировать так, как это будет необходимо.
Например, у меня на внешних жестких дисках, каждый из которых имеет размер в несколько терабайт, хранится большая коллекция фильмов, которые я собирал несколько лет. Мне, конечно, тяжело запомнить все названия фильмов, которые хранятся на жестких дисках.
Встречая в интернете какой-либо фильм, имея у себя список файлов в папке, я могу легко проверить, есть ли такой фильм у меня в коллекции, или я встретил новый фильм. Поэтому я приступил к поиску решения данного вопроса.
В итоге, я нашел несколько простых вариантов решения этой проблемы. Создать список файлов в папке можно разными способами: при помощи командной строки, при помощи файла, который имеет расширение «.bat», при помощи специальных программ, сохранить список в браузере.
Сохранение списка файлов с помощью командной строки
Вначале вам необходимо будет перейти к нужной папке, или диску, если вы хотите получить список файлов, которые находятся на диске. После открытия папки или диска, удерживая на клавиатуре кнопку «Shift», кликните правой кнопкой мыши внутри этой папки. В открывшемся контекстном меню выберите пункт «Открыть окно команд».
После этого откроется окно консоли, в которой уже будет указан путь к нужной директории (в вашем случае, будет к той папке, которую вы откроете). В этом примере, это папка «Программы» на Рабочем столе моего компьютера. В этой папке находятся другие папки, в которых находятся ярлыки программ.
Далее нужно будет ввести одну из этих команд:
После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».
Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:
- /b — обозначает, что будут сохранены только имена файлов.
- /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.
Затем на клавиатуре нажмите на кнопку «Enter».
После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.
Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.
Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.
Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.
На образце вы увидите правильное отображение текста.
После нажатия на кнопку «ОК», данный текст будет открыт в программе Word. Вы можете провести редактирование документа, а потом сохранить его на компьютере в нужном формате, в том числе в формате «TXT». Проблем с кодировкой после сохранения файла уже не будет.
Получение списка файлов в папке с помощью bat файла
Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:
Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:
- Имя файла: filelist.bat
- Тип файла: Все файлы
После этого нажмите на кнопку «Сохранить».
Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.
Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.
Программа DirLister для получения списка файлов
Вы можете создать список файлов расположенных в папке, при помощи бесплатной программы DirLister. Эта крошечная программа не требует установки на компьютер. После загрузки программы на свой компьютер, распакуйте архив с программой.
Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.
В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.
В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.
Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т. д.). После выбора необходимых настроек, нажмите на кнопку «Make List».
После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».
Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.
Получаем список файлов в Total Commander
Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.
В меню «Выделение», сначала выбираете пункт «Выделить всё». После того, как все файлы были выделены, в этом же меню выбираете пункт «Копировать имена в буфер».
Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.
Вы можете в меню «Выделение» выбрать пункт «Сохранить выделение в файл…». В этом случае, вам нужно будет дать имя файлу, а затем сохранить его в формате «TXT».
Сохранение списка файлов в папке в браузере
Получить список файлов в папке можно при помощи браузера. Сначала откройте браузер, а затем перетащите папку в окно браузера. Список файлов будет открыт в окне браузера. Между содержимым можно будет перемещаться как в Проводнике.
Далее можете просто скопировать список файлов в текстовый редактор, сохранить список в HTML файл, или сохранить в PDF при помощи виртуального принтера.
Выводы статьи
При помощи таких достаточно простых способов, вы можете легко создать список файлов, которые находятся в конкретной папке или на диске вашего компьютера. Вы можете использовать наиболее удобный для себя способ сохранения списка файлов.
3 способа получить список файлов в папке (видео)
Как получить список файлов в папке в Excel 2019
В этом сообщении мы увидим, как получить список файлов в папке в Excel. Мы покажем вам, как использовать Excel для просмотра сведений о файлах и папках в Windows, путем импорта всех файлов и папок в Microsoft Excel для отслеживания размера файла, типа файла и последней измененной даты.
У нас есть много файлов и папок на нашем ПК с Windows, и мы можем часто удалять или добавлять больше файлов и папок. Могут быть некоторые папки и файлы, которые очень важны для нас, и кто-то может их редактировать без нашего уведомления. Но мы не можем продолжать смотреть на каждую папку и файл, чтобы узнать, какой из них был отредактирован. Если это была модификация файла или папки, мы можем сортировать их с помощью «Последнее изменение», и мы можем узнать, какие изменения были изменены недавно.
Но что, если некоторые из файлов и папок были удалены из этого каталога? Мы не были бы в состоянии следить за тем, что было точно удалено. Но вы можете использовать Excel для просмотра файлов и папок в каталоге, которые были бы полезны для вас, чтобы узнать, по крайней мере, список удаленных файлов и папок.
Импортировать и получить список имен файлов в лист Excel
Если вы используете Microsoft Excel для импорта всех деталей файлов и папок в Excel, это поможет вам отслеживать последние измененные дату и время, типы файлов, список файлов, размер файлов и многое другое. Чтобы сделать это, выполните следующие простые шаги.
Перейдите в каталог или папку в Проводнике Windows, о которых вы хотите отслеживать. Здесь я хочу отслеживать файлы и папки в папке «Документы». Скопируйте путь к этому каталогу.
Теперь откройте любой веб-браузер по своему выбору и вставьте скопированный путь (путь к папке, которую вы только что скопировали на предыдущем шаге) в адресной строке браузера. Я использовал Google Chrome здесь. Просто префикс URL-адреса с помощью файла: /// , и содержимое будет отображаться как веб-страница.
Чтобы сохранить эту веб-страницу в автономном режиме, нажмите CTRL + S или щелкните правой кнопкой мыши на веб-странице и выберите «Сохранить страницу как». Выберите пункт назначения, дайте ему имя и сохраните веб-страницу.
Теперь через проводник Windows перейдите в папку, в которую вы сохранили автономную веб-страницу, и скопируйте путь. Откройте страницу Excel и нажмите вкладку Данные и выберите Из Интернета. Он открывает окно, а в строке адреса вставьте скопированный путь и нажмите кнопку «Перейти». Он загрузит все содержимое веб-страницы.
Он показывает вам желтые прямоугольники со стрелками, и это позволит вам выбрать нужный кадр. Вы можете найти здесь, что я выбрал ту часть, которую я хочу.
После выполнения этих шагов теперь нажмите кнопку import , и вы увидите, что все данные о файлах и папках импортированы на лист Excel без время. Вы можете видеть, что данные показывают столбцы и дают нам четкое представление о каждой детали.
Заключение
Поскольку мы занимаемся большую часть времени, при организации файлов и папок, желательно импортировать файлы и папки Подробности в Excel. Это было бы полезно, если бы какой-либо из вашего файла или папки был удален. Данные на листе Excel не обновляются, поэтому нам необходимо регулярно импортировать данные. Вы можете использовать этот метод, чтобы не только отслеживать изменения файла, но также и имена файлов.
Список файлов в папке
Смотрите также версии не зависит? ActiveSheet.UsedRange).Rows.Delete Shift:=xlUp’ сократить в коде вNovaya была добавка к GetAttr(myPath & myName)
- Пример 2003 Sub Private Sub проще фильтровать их Next f »»»»»»»’Сортировка GetLast10Files() Dim iПодсветил жёлтым 11ую FileItem.DateLastModified
- Hugo ЗДЕСЬ всё-таки посмотрите.
- End If Columns(«A:E»).AutoFitИногда бывает необходимо заполучить
Или это ограничение UsedRange 3-х местах «.JPEG»: Помогите,пожалуйста.Стоит следующая задача: четвёртому посту. = vbDirectory AndDutlf Init() Dim i сразу по ходу массива по дате»»»»»»»»»»»»»»»»»»»»»»»» As Long, j
строку:r = r + 1: Диалог убить, вместо Может пригодиться. У Set FileItem = на лист Excel твоего любимого?ActiveSheet.Cells(1, 1).End(xlDown).Offset(1).Select’сдвинуть экран на «.JPG» Есть папка сНа уровне подсознания
myName <> «.»: очень сильно благодарю!!!111 As Long, startDate дела. Для 10 For i = As Long, ka(i, 2) =X = SourceFolder.Path BrowseFolder прописать полный меня на работе Nothing Set SourceFolder список файлов вAlex_ST к последней заполненнойИ учтите, что картинками в формате я понимаю эту Then N =Думала это что-то As Date ReDim нужных файлов и 1 To UBound(a, As Long, p fso.GetFile(p & f).SizeNext FileItem путь, переменной r многие им пользуются = Nothing Set заданной папке и: Привет, Андрей! ячейке код написан не jpg, картинок там фишку, но сомневаюсь, N + 1 из области фантастики, outData(1 To LastFileCount, тех же 10000 1) — 1 As String, fjack_21Columns(«AQ:AR»).AutoFit задать значение 2.Agn89 FSO = Nothing ее подпапках. ВВот в упорEnd Sub для копирования, а порядка 100 тысяч, сумею ли внятно ReDim Preserve Folders$(1 безумно помогли 1 To 3) в папке операций For j = As String, a(),: Ну да. ИменноSet FileItem =Ігор Гончаренко: Добрый день! End Sub моей практике такое не помню. Разбиралсяпосле удаления строк для переноса файлов. и есть Экселевский объяснить To N) Folders(N)EducatedFool For i = потребуется 20 * i + 1 fso, x Application.ScreenUpdating так и хотел… Nothing: после выполнения Subнеобходима помощь в
Для запуска макроса нажмите встречалось неоднократно, например: с этим в UsedRange чистится неGuest файл в которомНо попробую- Dir = myPath &: 1 To LastFileCount 10000, что быстрее.
To UBound(a, 1) = False: [AP:AR].Clear Выгружать только последниеSet SourceFolder = M1 Shell «cmd корректировке макроса для
сочетание клавиш
перечислить в приложении к
июне и всё сразу (видно по: Так как в
planetaexcel.ru
получить список файлов из папки (Иное/Other)
перечислены 11 тысяч ищет по сумме myName End IfВот ещё вариант (с outData(i, 1) =sokol92
If a(i, 3)
Set fso = 10. Nothing /c dir c:*.* составления списка файлов,ALT+F8 договору на проведение уже выветрилось из размеру «бегунка» прокрутки первом сообщении упоминалось названий картинок,которые лежать аттрибутов, поэтому 0 myName = Dir()
примером файла): startDate Next End: Я полностью согласен < a(j, 3) CreateObject(«Scripting.FileSystemObject») p =
SAS888Set FSO =
>c:1.txt» end subразберите найденного на данном, выберите наш макрос тренинга список файлов головы. строк), а только расширение файлов JPG, в папке со (vbNormal) на него Loop MsgBox Join(Folders,rotten41 Sub Private Function с сообщением #17. Then For k
«X:BACKUPPPR2017» ‘Папка с: Проверяйте Sub GetLast10Files() Nothing
содержимое файла c:1.txt
форме.FileList
из раздаточных материаловНа 2003-ем точно.
по второму нажатию. то попробуйте заменить
100 тысячами картинок.Для
не влияет, что vbLf) End SubРезультат
: Доброе утро, участники
GetFiles(ByVal initPath As В
= 1 To файлами (и разделителем)
Dim i As
' форматирование текста
Agn89
1. необходимо вместо
и нажмите кнопку для особо щепетильных На 2007/2010, кажется,
Alex_ST в коде в того,чтобы лучше понять бы ни указали аналогично в массиве форума. String, ByVal fileFilterсвоих UBound(a, 2) x ReDim a(1 To Long, j AsColumns(«AP:AR»).Select: Спасибо всем за выбора папки, указать
Выполнить (Run) юристов в некоторых тоже. Но не
: Полирнул код и 3-х местах «.JPEG» приведу пример: допустим в параметре Folders.
excelworld.ru
Список файлов в папке
Подскажите решение. As String) As
программах я не = a(i, k): fso.GetFolder(p).Files.Count, 1 To Long, k AsWith Selection.Font
помощь. Ответ помог… путь к конкретной. В диалоговом окне компаниях
на 100% уверен. «продвинул» (расширил и на «.JPG» в Экселе естьattributesKoGGУ меня есть Shell32.FolderItems3 Dim pShell пользуюсь «пузырьком». Да, a(i, k) = 3) f = Long, p As.Name = «Calibri»jack_21 папке. выберите любую папкусоздать список файлов дляНо ведь проверить-то углУбил) интерфейс:И учтите, что ячейка с таким, поэтому и попадают, а строку 11 макрос, выводящий на As New Shell32.Shell если вас заранее a(j, k): a(j, Dir(p & «*.xls*») String, f As.Size = 9: Добрый день!2. при запуске или диск и ТЗ проекта просто: убери в- добавлен лист код написан не значением 123456789, а в результат обычные лучше перенести в лист — список Dim pFolder As интересуют первые N k) = x Do While f String, a(), fso,.Strikethrough = FalseНа сайте есть макроса необходимо обновлять — вуаля!сравнить содержимое папок (оригинал коде ограничение на с избранными путями для копирования, а в папке с (vbNormal) файлы. позицию № 5, файлов, находящихся в Shell32.Folder3 Dim pItems записей результата, то Next: End If: <> «» i x Application.ScreenUpdating =.Superscript = False такой топик: перечень файлов вЕсли захотите, чтобы вместо и бэкап, например) количество гиперссылок и поиска и возможность для переноса файлов.{/post}{/quote} картинками лежит картинкаА потому и т.к. при задании выбранной папке. As Shell32.FolderItems3 Dim алгоритмы меняются (например, Next: Next »»»»»’Выгружаем = i + False: [AP:AR].Clear Set.Subscript = FalseСписок файлов в папке папке а не
пути к файлуДля реализации подобной задачи просканируй без ограничения выбора пути изА как это в названием 123456789.jpg, необходима дополнительная фильтрация… несуществующего диска выбьетКак заставить макрос
curCount As Long в СУБД Oracle на активный лист 1 a(i, 1) fso = CreateObject(«Scripting.FileSystemObject»)
.OutlineFont = False- выводит на добавлять к списку в столбце B отлично подойдет небольшой
глубины что-нибудь монструозное, их списка сделать?как изменить код?откровенно так вот нужно Вот(уж как сумел) ошибку на строке
— выводить не Set pFolder = для этого есть
planetaexcel.ru
Список файлов в папке. Как ограничить количество записей?
последние по дате = fso.GetBaseName(p &
p = «X:BACKUPPPR2017″.Shadow = False
лист список файлов заново Sub FileList() выводилась живая гиперссылка, макрос, добавляющий в
ну, например C:Windows- пути поиска говоря я мало
отобрать только теДобавлено через 21 минуту
7. АДРЕСА всех файлов pShell.Namespace(initPath) Set pItems специальный предикат rownum 10 файлов»»»»»»»»»»»» i f) ‘Имя файла
‘Папка с файлами.Underline = xlUnderlineStyleNone из указанной папки Dim V As то замените 52-ю текущую книгу новый
KuklP при их добавлении что понимаю в картинки, названия которыхТо есть Dir(path,Апострофф в каталоге, а = pFolder.Items curCount Пример в сообщении
= IIf(UBound(a, 1)
без расширения a(i, (и разделителем) ReDim
.ColorIndex = xlAutomaticПытался допилить код.
String Dim BrowseFolder строку
пустой лист и: 65536. И это по кнопке «Добавить
макросах,только использую готовые… есть в Экселевской vbDirectory Or vbNormal)и
: А можно и
НАЗВАНИЯ папок, лежащих = 0 pItems.Filter
#15, как обычно,
< 10, UBound(a,
2) = FileLen(p
a(1 To fso.GetFolder(p).Files.Count,
.TintAndShade = 0
Что-то получилось, что-то
As String ‘открываем
Cells(r, 2).Formula = FileItem.Path выводящий на него
еще не все в Избранные» унифицируютсяZVI таблице. Прикрепляю Экселевскую
Dir(path, vbDirectory)одно и
стандартными VB-средствами обойтись
в целевом каталоге &H40, fileFilter Do оптимизирован замечательно. 1), 10) Range(«AP1»).Resize(i,
& f) ‘Размер 1 To 3)
.ThemeFont = xlThemeFontMinor нет.
диалоговое окно выборана
список всех файлов свинство мелкомягких. Не
и сортируются автоматически.: Ну, давайте будем
таблицу со списком тоже, с точки
Option Explicit Function ?
Until pItems.Count =jack_21 3).Value = a
файла a(i, 3) f = Dir(p
End WithУ меня вот папки With Application.FileDialog(msoFileDialogFolderPicker)Cells(r, 2).Formula = «=HYPERLINK(«»»
с их параметрами знаю, как с- для ускорения учиться редактировать макрос:
названий, которые нужно зрения
Get_DirS(path As String)(без учета подпапок)
curCount curCount =
: 1800…2500. В сетевой
Set files =
= FileDateTime(p &
& «*.xls*») DoSelection.Font.Bold = False
так получилось: .Title = «Выберите
& FileItem.Path & из заданной пользователем
гиперссылками, а формулы
процедуры и удобства
1. Загрузить файл.
найти и отобрать
Dir
Dim a() As
Wasilich
pItems.Count Application.Wait CDate(CDbl(Time)
папке. Все файлы
Nothing: Set fso
f) ‘Дата последней
While f <>
Selection.Font.Italic = False
- сканирует заданную
папку или диск»
«»»)»
папки вот такого,
листа в макросах
работы с результатами
2. Нажать Alt-F11
в папке со
!
String, D As
: Может пригодится.
+ 1.15740740740741E-05) Loop
Excel-овские… xls xlsx.
= Nothing End
модификации f =
«» i =
With Selection (фиксированную) в коде
.Show On Errorcherkas примерно, вида: не могут обрабатывать (чтобы при выделении – откроется редактор 100 тысячами картинок.Добавлено через 6 минут String, U As200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub FileFolderList()
Set GetFiles =jack_21 Sub
Dir Loop »»»»»»»’Сортировка i + 1:.HorizontalAlignment = xlGeneral папку (очень долго Resume Next Err.Clear: Здравствуйте знатоки! Есть
Для добавления макроса в массивы большего размера. случайно не кликнуть VBE с кодомВладимирТоже с этим Long D =iPath = «D:» pItems Set pFolder: [USER=55]Андрей VG, переместивjack_21 массива по дате»»»»»»»»»»»»»»»»»»»»»»»» Set x =.VerticalAlignment = xlCenter собирает в папке V = .SelectedItems(1) одна проблема и вашу книгу нажмите В том числе на ссылку) гиперссылки макроса.: Кто-то недавно делал сталкивался неоднократно Dir(path, vbDirectory) WhileWith CreateObject(«Shell.Application») = Nothing Set модуль из вашего: Упс! For i = fso.GetFile(p & f).WrapText = False на сервере. 1800 If Err.Number <> как решить пока сочетание клавиш и в новых теперь не ставятся3. Заменить слово так на форуме,Сделал вывод -
D <> «»Dim iFolder As pShell = Nothing файла в своюЯ так понимаю, 1 To UBound(a, a(i, 1) =.Orientation = 0
файлов.) 0 Then MsgBox
не придумал, решилALT+F11
версиях. При миллионе по умолчанию, а
JPEG на слово выводил название файлов
для If GetAttr(path & Object, iFolderItem As End Function книгу макросов, он
у меня в 1) — 1 fso.GetBaseName(p & f).AddIndent = False- вставляет только «Вы ничего не получить консультацию., в открывшемся окне строк на листе, есть кнопка для JPG в 6-й в книгу Excel.Dir «» & D) ObjectОригинал в посте перестал работать… системе (или в For j = ‘Имя файла без.IndentLevel = 0имя (без расширения) и выбрали!» Exit SubСуть: редактора Visual Basic это, мягко говоря, из установки/удаления (2 раза) и Думаю в этомэто не нужно, And vbDirectory ThenSet iFolder =jack_21»User-defined type not голове?) чего-то не i + 1 расширения a(i, 2).ShrinkToFit = False даты End If EndЕсть несколько папок вставьте новый модуль жалко выглядит.- по даблклику 7-й (1 раз) направлении нужно работать…а для ReDim Preserve a(U) .Namespace(iPath): Неожиданно возникла ошибка. defined» для строки хватает… Вставить через To UBound(a, 1) = x.Size ‘Размер.ReadingOrder = xlContextв указанный диапазон With BrowseFolder = с фотографиями. Фотографий
через менюAlex_ST по имени файла
строках снизу.ВладимирShell a(U) = path
If Not iFolderCompile error: Can’t findPrivate Sub updateOut(ByVal thisFileInsert — Module If a(i, 3) файла a(i, 3).MergeCells = False AP1:AR1/ колонки 42,
CStr(V) ‘добавляем лист в папках околоInsert — Module: или всё-таки 65535
теперь можно открыть
4. Нажать Alt-F4: Также можно сделать
и т.п. необходимо… & D U
Is Nothing Then project or library As Shell32.FolderItem)не получается. Всё < a(j, 3) = x.DateLastModified ‘ДатаEnd With
43, 44. и выводим на 30 000 шт.и скопируйте туда ? файл, по полному – закроется редактор
гиперссылки на файлы,Smith&Wesson = U +For Each iFolderItemи подсвечиваетАндрей VG красным светится. Then For k последней модификации fEnd Sub- Вставка в него шапку таблицы нужно в один текст этого макроса:KuklP пути — открыть VBE. чтобы потом сопоставить: А зачем так 1 End If In iFolder.ItemsTime: Подключите библиотеку Microsoftjack_21 = 1 To = Dir LoopПомогите с кодом, ActiveWorksheet ActiveWorkbook.Sheets.Add With Range(«A1:E1″) столбец excel получитьSub FileList() Dim: А кто мешает папку5. Проверить макрос, с кодами в все сложно, когда D = DirIf iFolderItem.IsFolder =v этой строке: Shell Controls And: На 2007 сработало. UBound(a, 2) x »»»»»»»’Сортировка массива по плиз.. / В Активный .Font.Bold = True названия всех этих V As String тебе открыть свой(наш)- кнопки теперь нажав на кнопку. Excel. можно использовать объект Wend Get_DirS = True ThenApplication.Wait CDate(CDbl(Time) + Automation Ошибки нету. = a(i, k): дате»»»»»»»»»»»»»»»»»»»»»»»» For iЧто надо подправить, Лист /. Путь .Font.Size = 12 файлов, а во
Dim BrowseFolder As любимый и нажать «интерактивные»
6. Сохранить книгу,Guest
Enumerator a End Functioni = i + 1
1.15740740740741E-05)jack_2190 сек. a(i, k) = = 1 To что бы выводить не выводит. Я
End With Range(«A1»).Value второй столбец название String ‘открываем диалоговое ctrl+down?- и что-то если заработало.: Отобрали и чтоJavascript var FSO,F,SFold,SubFolders,s; Sub Get_DirS_Example() DimRange(«A» & i)Чего ему вдруг: Подключил. Заработало.Максим Зеленский a(j, k): a(j,
UBound(a, 1) - только его и так = «Имя файла» папки из которой окно выбора папкиRAN ещё (не помню)Guest дальше? Действия какие FSO=WScript.CreateObject(«Scripting.FileSystemObject»); //Путь к a a = = iFolderItem.Name стало не хватать?jack_21: это не VBA k) = x 1 For jпоследние 10 файлов? знаю. Range(«B1»).Value = «Путь» эта фотография. Если With Application.FileDialog(msoFileDialogFolderPicker) .Title: ГЫ! У меняПрошу прощения. Обнаружил: Оно!более того,мне нужно надо производить с каталогу SFold=»C:\Program Files»; Get_DirS(«C:Documents and Settings»)End If Чего надо подключить?: Андрей VG, Протестировално на 2007 Next: End If: = i +Последние по времениА вложенных папок Range(«C1»).Value = «Размер» это имеет значение, = «Выберите папку даже там всего ошибку было кроме картинок файлами? s=»Каталог «+SFold+»n»; s+=»Подкаталоги:n»; End SubПричем работаютNextjack_21 на работе. Практически работать не будет. Next: Next »»»»»’Выгружаем 1 To UBound(a, редактирования. нету. Range(«D1»).Value = «Дата то названия кириллицей. или диск» .Show половина!
Файл отсюда удаляю. ещё и txt-файлыДействий никаких после //Создаем объект Folder они зачастую быстрееElse: Нашёл. В VBA мгновенное срабатывание вна 2010 и на активный лист
1) If a(i,ModifiedСкрытый текстSub FileListNumbersH() создания» Range(«E1»).Value =
Возможно ли как On Error Resume
Alex_ST Исправленный файл -
таким же образом этого производить не для каталога C:Program стронних библиотек.
MsgBox «Указанная папка — References одна случае сканирования сетевой
2013 нужна надстройка последние по дате 3) < a(j,. Идеально, если это
’ Список файлов «Дата изменения» ‘вызываем
то осуществить такое Next Err.Clear V: Серёга, а ты в следующем посте. отобрать,так вот поменяв нужно,мне нужно отобрать
Files F=FSO.GetFolder(SFold); //СоздаемIf GetAttr(myPath &
изволит отсутствовать», , из библиотек имела
папки…
Power Query для
10 файлов»»»»»»»»»»»» i 3) Then For количество можно будет в папке процедуру вывода списка
и если возможно = .SelectedItems(1) If про что безAlex_ST в макросе jpg только те картинки,имена коллекцию подкаталогов каталога myName) = vbDirectory «» пометку MISSING. СнялНа разных компах Excel.
= IIf(UBound(a, 1) k = 1 менять редактированием кода.Dim V As файлов ‘измените True помогите кто чем Err.Number <> 0 пояснения написал: Ещё раз прошу
на txt это которых есть в C:Program Files SubFolders= And myName <>End If галку — вроде время слегка разнитсяВ 2016 она < 10, UBound(a, To UBound(a, 2)Не могу найти String на False, если может. Then MsgBox «ВыЯ вообще-то говорил прощения за допущенную случилось,моё счастье наполнено экселевском файле, для new Enumerator(F.SubFolders); //Цикл «.» And myNameEnd With
заработало. — от 0,5сек уже встроена в 1), 10) [AP1].Resize(i, x = a(i, мне понятных примеровDim BrowseFolder As не нужно выводитьЗа ранее всем ничего не выбрали!» про количество гиперссылок в предыдущем посте счастьем! того чтобы потом по всем подкаталогам <> «..» ThenИEnd Sub
Эта библиотека осталась до 4 сек. Excel 3).Value = a
k): a(i, k) в сети. String файлы из вложенных спасибо. Exit Sub End
на листе. Так ошибку в процедуре.
Alex_ST только эти,отобранные картинки
for (; !SubFolders.atEnd(); так даже приходилосьЕсли True заменить от надстройки, которая
jack_21jack_21
End Sub = a(j, k):p.s. Отсекать лишнююBrowseFolder = папок ListFilesInFolder BrowseFolder,PS как получать
If End With их ТОЧНО 65530Кроме того, наткнулся: Выводится список файлов,
загрузить на сайт. SubFolders.moveNext()) { s+=SubFolders.item()+»n»; писать на False, будут была установлена на: Не могу разобраться,: Максим Зеленский,в 2016jack_21
a(j, k) = инфу в названии»X:BACKUPPPR2017″ True End Sub мне не принципиально, BrowseFolder = CStr(V)Я это проверял на недокументированное ограничение найденных в заданнойGuest //Добавляем строку сSmith&Wesson файлы. домашнем компе. какую часть кода вставил Ваш код: На 2007 работает. x Next: End файла буду с’BrowseFolder = CStr(V) Private Sub ListFilesInFolder(ByVal если получиться сделать ‘добавляем лист и в пошаговом режиме Excel: гиперссылок на папке.: Так и как именем подкаталога }:rotten41А проблема возникла надо повесить на в запрос PQ.Время = 25 сек. If: Next: Next помощью записанного макроса:’добавляем лист и SourceFolderName As String, по одной папке выводим на него (естественно, не нажимая листе может бытьМожно задавать глубину отбирать-то?я не совсем //Выводим полученные строкиАпострофф: Wasilich, работает. на рабочем компе, кнопку, чтобы этоСоздал запрос. ВывелВечером проверю на »»»»»’Выгружаем на активный «Ctr+H» + формула выводим на него ByVal IncludeSubfolders As и получать только шапку таблицы ActiveWorkbook.Sheets.Add 65000 раз F8, не более 65530 «погружения» в подпапки поняла:-)какие мои действия?Что на экран WScript.Echo(s);P.S., да, я былОгромное спасибо за где эта надстройка заработало с кнопки данные на Лист. 2016. лист последние по «=правсимв()» шапку таблицы Boolean) Dim FSO один столбец с With Range(«A1:E1») .Font.Bold а тормознув программу штук. и маску имён сделать с файлом,который код не мой, не прав. vbDirectory=32, совет. не была установлена. в UserForm. Подскажите,Поверхностно попробовал -
Максим Зеленский
дате 10 файлов»»»»»»»»»»»»SAS888
’ActiveWorkbook.Sheets.Add As Object Dim
названиями фотографий, то = True .Font.Size Stop’ом на 65520
Просканировал у себя файлов
Вы прикрепили? но всегда пользуюсь если папка в
vova_netПравильно ли я пожалуйста… работает вроде. Классная: Power Query не i = IIf(UBound(a,: Попробуйте так: Sub
With SourceFolder As Object меня это тоже = 12 End
- лень было Programm Files иВ ячейки столбцовGuest
им, как шаблоном корне и =
: Подскажите как получить понимаю :Option Explicit Private штука! Вот только подойдет? 1) < 10,
GetLast10Files() Dim iActiveSheet.Range(«AP1:AR1»)
Dim SubFolder As устроит, папки я
With Range(«A1»).Value = делать Exit For
при попытке расставить для каждого из: Наверно я простоSmith&Wesson 16, если это
planetaexcel.ru
Список файлов в папке
список папок вприменив какую-то процедуру Const LastFileCount As на работе у
let Source = UBound(a, 1), 10) As Long, p
.Name = «Calibri» Object Dim FileItem уж и сам «Имя файла» Range(«B1»).Value по ошибке )
гиперссылки вылетел в найденных файлов выводятся: не совсем поняла
, в посте #2 подкаталог. заданной директории (при на компе С
Long = 10 меня установлен Office Folder.Contents(«путь к папке»), [AP1].Resize(i, 3).Value = As String, f.Font.Bold = True
As Object Dim
тогда проставлю. Всё = «Путь» Range(«C1»).ValueА строк на отладку- имя файла вопрос.После того как то же самое,
Эту строку ‘If этом имена файлов
НАДСТРОЙКОЙ, в файл/-ы ‘ количество выгружаемых 2007.
Sorted = Table.Sort(Source,{{«Date a End Sub
As String, a(),.Font.Size = 10
planetaexcel.ru
Вывод названий папок в целевом каталоге. (Макросы/Sub)
r As Long же быстрее чем = «Размер» Range(«D1»).Value
листе нашего любимого
Ошибку исправил. Ограничение — гиперссылка на файлы с картинками только на другом GetAttr(path & «»
в список попадать внедрилась какая-то инфа записей Private outData()Андрей VG modified», Order.Descending}}), KeptFirstRowsjack_21 fso Application.ScreenUpdating =
End With
Set FSO = 30 000 фото
= "Дата создания"
Sub FindLastPPR() DimСколько у вас = Table.SelectColumns(KeptFirstRows,{«Name», «Date
2003-го, действительно 65536.
учёл.
файл будут отобраны их языке, и результат
& D) And не должны)?
не работающая БЕЗ As Variant Public
: Доброе время суток = Table.FirstN(Sorted,10), RemovedOtherColumns
: Огромное спасибо. "Сработала False: [AP:AR].Clear Set
Range("AP1").Value = "Name"
CreateObject("Scripting.FileSystemObject") Set SourceFolder руками вбивать.
Range("E1").Value = "Дата
А в ящике
adaebella
- полный или нужно в массиве.
vbDirectory Then' я,
KoGG
установленной этой надстройки?
дудочка» (с) fso = CreateObject(«Scripting.FileSystemObject»)
Range(«AQ1»).Value = «Created» = FSO.getfolder(SourceFolderName) r
excelworld.ru
Как получить список папок в заданной директории
Nic70y изменения» ‘вызываем процедуру пива 24 бутылки,: здраствуйте Alex ST сокращённый (от заданнойпоместить в другуюSmith&Wesson
конечно, подсмотрел на: Dim Folders() AsПодскажите плиз, где neededFiles As Shell32.FolderItems3 там файлов? modified»}) in RemovedOtherColumnsВот только неожиданно p = «X:BACKUPPPR2017″Range(«AR1»).Value = «Modiefed» = Range(«A65536»).End(xlUp).Row +: вывода списка файлов а в сутках . мне очень папки) путь к папку,чтобы отобранные ИСКОМЫЕ, вы ошиблись разделом MSDN, но нифига String Sub Subfolders_in(Folder$) корень зла? Dim nextFile AsВариант.sokol92долго
‘Папка с файлами’вызываем процедуру вывода
1 ‘находим первую200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Workbook_Open() ‘измените True на 24 часа. Совпадение? нужна ваша помощь файлу 11000 картинок лежали форума. Здесь обсуждается не понял зачем Dim N% DimHOME = w8.1×64 Shell32.FolderItem Set neededFilesУспехов.: Использование функции dirон собирает информацию. (и разделителем) ReDim списка файлов пустую строку ‘выводимColumns(«A:A»).ClearContents False, если неKuklP в екселе .- дата и в отдельной папке.так язык программирования VBA.Только там ‘vbDirectory). А fs, f, f1, + mso2010 = GetFiles(«F:!!!_BACKUP-PPPAVADZIMES2017», «*.*»)P. S. sokol92, в сообщениях #532секунды!!!
a(1 To fso.GetFolder(p).Files.Count,’измените True на данные по файлуDim iPath As нужно выводить файлы: Леш, это делается пожалоста ответь мне время создания файла
пойдёт? заметил, что ветка вот «.» и fc Set fsWORK = w8.1×64 ‘ C:WindowsSystem32 Init если нужны только и #7 излишне,Задумка была, что 1 To 3) False, если не For Each FileItem String из вложенных папок без stop. add или здесь или- размер файлаАБВ по VBA В «..» нужно фильтровать. = CreateObject(«Scripting.FileSystemObject») Set + mso2007 For Each nextFile 10 файлов, то так как коллекция бы не открывать f = Dir(p нужно выводить файлы
In SourceFolder.Files Cells(r,Dim iFileName As ListFilesInFolder BrowseFolder, True watch — i=65530 прямо в скайп- дата и: Как вариант.
таком случае, функцияТакже не вкурил f = fs.GetFolder(Folder)sokol92 In neededFiles updateOut зачем формировать данные files уже содержит папку и не & «*.xls*») Do
из вложенных папок 1).Formula = FileItem.Name String End Sub Private — ставим радиоточку : ruslan4963 . время модификации файлаПросмотреть можно так. будет следующая: почему в руководстве
Set fc =: Читаем про «раннее nextFile Next ActiveSheet.Range(«AR2»).Resize(LastFileCount, по всем файлам? информацию о всех проверять номер последнего While f <>ListFilesInFolder BrowseFolder, True Cells(r, 2).Formula =
Dim i As Sub ListFilesInFolder(ByVal SourceFolderName на break if зарание спасибо иПрицеплен «Удобный автофильтр»,Guest’Объявляем переменные Dim пишется — команда f.SubFolders N = и позднее связывание» 3).Value = outData
sokol92 файлах папки p. файла. А так «» i =End Sub FileItem.Path Cells(r, 3).Formula
Long As String, ByVal true. Потом этот буду ждать своево позволяющий легко фильтровать: Вот с указанием FSO, SFold, SubFolders, Dir запоминает параметры 0 On Local (у Вас в ‘ выгрузка в: Здравствуйте, Андрей! Я Вероятно, использование этой
получается что быстрее i + 1Private Sub ListFilesInFolder(ByVal = FileItem.Size Cells(r,iPath = ThisWorkbook.Path
IncludeSubfolders As Boolean) watch можно редактировать ответа. с уважениям полученные данные. директории с файлами. sFlds, tsOut ‘Создаем первого вызова, но Error Resume Next примере раннее). /ActiveSheet.Range(«AR2»)/ End Sub не вступал в
же функции и руками найти и a(i, 1) =
SourceFolderName As String,
4).Formula = FileItem.DateCreatediFileName$ = Dir(iPath$ Dim FSO As прямо в окне РусанAlex_ST Указываете папку с
объект FileSystemObject Set
в моем коде For Each f1
Dutlf Private Sub updateOut(ByVal соревнование, просто убрал приводит к ошибке,
проверить. fso.GetBaseName(p & f) ByVal IncludeSubfolders As
Cells(r, 5).Formula = & «*.*») Object Dim SourceFolder watches:-)KuklP
: К стати, кто файлами для перемещения. FSO = WScript.CreateObject(«Scripting.FileSystemObject») она все равно In fc N: Имеется папка, в thisFile As Shell32.FolderItem) в сообщении #7 указанной в сообщенииГде проблема? Проверял ‘Имя файла без Boolean) FileItem.DateLastModified r =i = 1 As Object DimAlex_ST: adaebella, для таких подскажет, где я В данной папке ‘Создаем файл, куда
выводит в т.ч. = N + ней лежит порядка Dim pos As ненужную там функцию #6. Вариант без на Office 2007. расширения a(i, 2)Dim FSO As r + 1Do While iFileName$ SubFolder As Object: Серёга, хорош флудить. сообщений есть кнопка
нахомутал (просто, наверное, создается(если еще не будем записывать имена имена файлов. 1 ReDim Preserve 100 файлов-excel. Long, i As dir, которая к dir: Дома на 2016 = fso.GetFile(p & Object X = SourceFolder.Path <> «» Dim FileItem AsKuklP «Приват». глаз замылился)? создана) папка «MovingFiles», подкаталогов Set tsOutИ еще вопрос: Folders(1 To N)
Названия у них Long, fileDate As тому же некорректноSub GetLast10Files() Dim
посмотрю. f).Size ‘Размер файлаDim SourceFolder As Next FileItem ‘вызываем
ActiveSheet.Cells(i, 1) = Object Dim r: А где флуд?Alex_STЗаметил при тестировании
CyberForum.ru
Как отобрать из папки картинки в формате jpg, имена которых перечислены в Экселевской таблице?
в которую и = FSO.CreateTextFile(«output.txt», True, написано, что нужно As String Folders(N) разные и не Date fileDate = работает с именами i As Long,——————————————————————————————————- a(i, 3) = Object процедуру повторно для iFileName As Long Set Все по теме.: Ждите ответа, ждите два мелких косяка: отбираются файлы. False) ‘Путь к ставить двойные кавычки = Folder & имеют никакой последовательности. thisFile.ModifyDate pos = файлов, не отображамых j As Long,А вот на fso.GetFile(p & f).DateLastModifiedDim SubFolder As каждой вложенной папкиi = i + 1
FSO = CreateObject(«Scripting.FileSystemObject»)Alex_ST ответа, ждите ответа,1. Значение чек-боксаОбъясните, пожалуйста, поподробнее,я корневому каталогу SFold Chr(34), если в
«» & f1.NameМожно ли с -1 For i в кодовой таблице k As Long, 2016 не сработало.
‘Дата последней модификации Object If IncludeSubfolders TheniFileName$ = Dir Set SourceFolder =
: Подправил файл (там, ждите ответа, ждите SheetFind.CheckBox_ShortPath при открытии не поняла что = «C:Program Files» имени папки есть & «» Next помощью excel получить = 1 To
по умолчанию (Windows-1251). p As String,Error 53/ File f = DirDim FileItem As For Each SubFolder
Loop FSO.getfolder(SourceFolderName) r = оказывается, поломалась расстановка ответа… файла сохраняется таким, делать,вот у меня Set Folder =
пробелы. Но у f1 End SubСписок список названий файлов, LastFileCount If outData(i,Андрей VG
f, a(), fso, not found.
Loop [AP1].Resize(UBound(a, 1),
Object In SourceFolder.SubFolders ListFilesInFolderEnd Sub Range(«A65536»).End(xlUp).Row + 1 гиперссылок)А вообще, правильно каким оно было есть эксэлевский файл FSO.GetFolder(SFold) ‘Цикл по меня все работает
с полными путями которые лежат в 1) < fileDate: Коллега, я не files Application.ScreenUpdating =Подсветило жёлтым, начиная UBound(a, 2)).Value =Dim r As
SubFolder.Path, True Nextвсего не читал
‘находим первую пустуюАлексей написал Сергей: личные при сохранении перед который вы прислали всем подкаталогам for и без них. в массиве Folders() папке? Then pos =
рассматриваю обсуждение как False: [AP:AR].Clear Set с двоеточия и a ‘Выгружаем на Long SubFolder End If — только название строку ‘выводим данные
: Подскажите , а вопросы — в закрытием. А вот и есть папка
Each SubFolder In И наоборот ничегоАпостроффnilem i Exit For соревнование. Скорее как fso = CreateObject(«Scripting.FileSystemObject») до конца строки:
активный лист [AP:AR].SortSet FSO = Columns(«A:E»).AutoFit Set FileItem темы…
по файлу For как сделать так личной почте. А переменная ShortPath, которую с сотней тыщ
Folder.SubFolders sFlds = не выдает/работает неверно,: Вариант:
: Файлы в папке.
End If Next способ коллективно найти p = «X:BACKUPPPR2017″ i = i
[AR1], xlDescending, Header:=xlNo CreateObject(«Scripting.FileSystemObject») = Nothing Setgling Each FileItem In что бы еще
если вопрос по я пытаюсь по картинок,что делать дальше?
SFold & SubFolder.Name если их указать.
Sub Dirs() Dim Пример (2007)
If pos > оптимальное решение при ‘Папка с файлами +1 : Set ‘Сортируем по датеSet SourceFolder = SourceFolder = Nothing: Есть вариант, макросы SourceFolder.Files Cells(r, 1).Formula можно было особым
planetaexcel.ru
Поиск файлов в папке и её подпапках (Для тех, кто точно помнит, что файл был, но вот где?)
теме, то спрашивайте нему выставить вGuest ‘Выводим полученные строки
Казанский myName$, myPath$, N%,nilem -1 Then For
обсуждении темы всеми (и разделителем) Set x = fso.GetFile(p
Range(«AP11:AR» & Rows.Count).ClearContents FSO.getfolder(SourceFolderName) Set FSO =
от разных производителей, = FileItem.Name Cells(r, образом помечать файлы здесь.
процедурах обработки событий: Занавес…
в файл output.txt
: А что бы Folders$() On Local
: Файлы в папке i = LastFileCount заинтересованными лицами. Плюс,
files = fso.GetFolder(p).files & f) ‘Оставляем первые 10r = Range(«A65536»).End(xlUp).Row Nothing End Sub
объединенных в одном 2).Formula = FileItem.Path
и удалять ихНо сразу предупреждаю: Workbook_Open, Worksheet_Activate, Worksheet_ActivateGuest tsOut.WriteLine sFlds Next в список попали Error Resume Next и подпапках. Пример — 1 To чему-нибудь научиться. ReDim a(1 ToSAS888 файлов End SubФорматирование + 1 ‘находимStoTisteg файле. Может и
Cells(r, 3).Formula = ?
: Не понял этой вам пригодится. Для FileItem.Size Cells(r, 4).FormulaAlex_ST я не занимаюсь Поэтому перед первым
дистанционным обучением VBA ставиться не хочет.
: Спасибо за подробное tsOut.Close WScript.Quit
всякие с причудами myPath = InputBox("Введите
(2007) pos Step -1Просто в вашем
files.Count, 1 To: 1. Большое время полученной таблицы добавьте
первую пустую строку
описание, разобралась, ноДа… Вы правы. директории, можно написать директорию», , «c:temp»)
Dutlf outData(i + 1, коде проблема с 3) For Each сбора информации, скорее
самостоятельно.’выводим данные по фразы, ведь окно включения в список, = FileItem.DateCreated Cells(r,
: Дорабатывать надо… И и за деньги поиском приходится чекнуть после обработки в Только смысл массив так - If Right(myPath, 1): ничего не понятно, 1) = outData(i, методом сортировки пузырьком.
f In files всего, связано неЕсли принципиально, то файлу диалога — способ содержимого под папок,
5).Formula = FileItem.DateLastModified самое главное -
писать программы не бокс туда-обратно чтобы
папке MovingFiles пусто. городить для таких
D = Dir(path, <> «» Then файлы не откываются,
1) outData(i + Если у ТС If LCase(f.Name) Like с макросом, а можно отсортировать строки
For Each FileItem указать путь к необходимо указать на r = r придумать как именно собираюсь, т.к. Excel-2003
результат ему соответствовал. Я проверяла соответствие простых вещей? vbDirectory Or vbHidden myPath = myPath
можно как-нибудь тлько 1, 2) =
10000 файлов, то «*.xls*» Then i с медленным доступом внутри массива и In SourceFolder.Files ‘ папке. Видимо, онлюбой документ + 1 X удобно — моё хобби,2. В процедуре названий в эксэлеНа VB данная
Or vbSystem) While & «» If экселевский файл выложить outData(i, 2) ‘outData(i
это будет долго = i + к сетевому диску. выгружать на лист вставка в столбец
Вас не устраивает,вне этих папок = SourceFolder.Path NextНо мне это а не источник200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub ОчисткаСписка() и в папке
стандартная функция, по-моему, D <> «» Dir(Left(myPath, Len(myPath) - с нужным примеро? + 1, 3) 10000 * 10000 1 a(i, 1)2. Почему метод не весь массив,
42, 43, 44 а какой устраивает, (рядом с этими FileItem ‘вызываем процедуру
не нужно, а дохода.On Error Resume с картинками, тут ещё проще и
If GetAttr(path & 1), 16) =
Спасибо = outData(i, 3) в среднем операций. = f.Name ‘Имя fso.GetFile выдает ошибку а только последние
Cells(r, 42).Formula = Вы не пишете. папками). Думаю разберетесь. повторно для каждой
времени свободного сейчасА по Скайпу Next всё в порядке. понятнее. ИМХО… «» & D) «» Then MsgBox
nilem Next outData(pos, 1) Чтобы не писать файла без расширения в Excel 2016 (по дате) 10 Left(FileItem.Name, InStrRev(FileItem.Name, «.»)StoTisteg Здесь про список вложенной папки If нет… я не общаюсьIf ActiveSheet.FilterMode ThenZVIМожет не прав,
And vbDirectory And «Папка не существует!»:: Нажимаем зеленую кнопку.
= fileDate ‘ Quick Sort я a(i, 2) = не знаю (не файлов.
— 1) ‘: А так вообщеAlex_ST IncludeSubfolders Then For
Так что извините, ни с кем ActiveSheet.ShowAllData’ сбросить фильтры: Так как в
но всегда считал, D <> «.» Exit Sub myName Заполняется список экселевских
fileDate outData(pos, 2) и предложил, раз f.Size ‘Размер файла могу протестировать). Ноjack_21имя файла БЕЗ расширения имеет смысл смотреть: Хоть уже и Each SubFolder In
но я сейчас кроме своих друзей.Intersect(Rows(«6:» & Rows.Count),
первом сообщении упоминалось чем проще и And D <> = Dir(myPath, vbDirectory)
файлов, находящихся в = thisFile.Name ‘outData(pos, нужно только ограниченное a(i, 3) = можно этот метод: Нет. Не работает.Cells(r, 43).Formula = в сторону этого не нужно, наверное… SourceFolder.SubFolders ListFilesInFolder SubFolder.Path,
с этим ковырятьсяRAN
ActiveSheet.UsedRange).ClearContents’ удалить содержимое расширение файлов JPG, меньше код -
«..» Then ‘далее Do While myName текущей папке (в 3) = thisFile.Size
число файлов по f.DateLastModified ‘Дата последней вообще не использовать.error 53 - FileItem.DateCreated решения:Но готовый файл True Next SubFolder
просто не могу.: Леш, это отIntersect(Rows(«7:» & Rows.Count), то попробуйте заменить тем лучше.
по текстуУпсс: Это <> «» If которой находится файл-обработчик). End If End
дате, то тогда модификации End If Например так: Sub File not found
excelworld.ru
Cells(r, 44).Formula =
Макрос FolderStructure предназначен для вывода в таблице Excel списка файлов и папок (структуры вложенных файлов и подпапок в заданном каталоге).
Пример результата работы макроса показан на скриншоте (щелкните по нему для увеличения)
В настройках макроса задаются:
- путь к стартовой папке (обязательный параметр)
Макрос начинает составлять список файлов и папок, начиная с заданной папки - маска имени файла
Позволяет выводить в результат только файлы, название которых соответствует заданной маске
По умолчанию маска равна * (все файлы) - глубина поиска
Указывает, на сколько уровней подпапок вглубь макрос должен искать файлы
Если параметр не задан, проверяются все подпапки (без ограничений по вложенности) - маски исключаемых файлов
Опциональный параметр, позволяет исключить некоторые файлы из результата
Помимо указанных масок (можно задать несколько масок, разделив их символом |), всегда исключаются файлы с названием thumbs.db, а также временные (скрытые) файлы с названием, начинающимся на ~$
Макрос выводит на лист таблицу их следующих столбцов:
- уровень папки / файла (этот столбец скрыт, он в большинстве случаев не нужен)
Числовое значение от 0 (корневая папка) до уровня самой глубокой вложенной подпапки - тип объекта (папка или файл)
- имя файла / папки
Для подпапок, после имени подпапки, указывается информация о содержимом (количество вложенных файлов / подпапок) - полный путь (для файлов)
В этот столбец выводятся гиперссылки на найденные файлы / подпапки - дата создания
- размер папки / файла
В пробной версии макроса FolderStructure присутствуют ограничения:
- код макроса закрыт от просмотра и редактирования
- некоторые символы в именах файлов / папок заменяются на символ *
В полной версии макроса FolderStructure этих ограничений нет:
- код надстройки открыт, вы можете изменять его как угодно
- нет привязки к компьютеру, и каких-либо ограничений по использованию
- стоимость макроса FolderStructure составляет 360 рублей
Порядок покупки макроса FolderStructure:
- тестируете макрос на пробной версии (файл прикреплён к статье), и убеждаетесь, что всё работает как вам нужно
- оплачиваете 360 рублей любым удобным вам способом
- пишете мне на почту или в Скайп, когда и куда оплатили
- я проверяю поступление денег (от 2 минут до нескольких часов), и высылаю вам файл FolderStructure.xlsb