Vba excel создать папку
Объект File позволяет выполнять различные манипуляции с файлом, например, копировать или удалить файл, а также предоставляет доступ к информации о файле, например, можно получить размер файла или дату и время создания файла. Создать объект позволяет метод GetFile() объекта FileSystemObject . В параметре указывается путь к файлу. Путь может быть абсолютным или относительным. При указании относительного пути полный путь определяется с учетом местоположения текущего рабочего каталога и текущего диска. Пример создания объекта:
Открытие файла
Открыть файл позволяет метод OpenAsTextStream() объекта File , который возвращает ссылку на объект TextStream . Формат метода:
Необязательный параметр задает режим открытия файла:
- ForReading — чтение (значение по умолчанию). Указатель устанавливается на начало файла;
- ForWriting — запись. Содержимое файла удаляется. Указатель устанавливается на начало файла;
- ForAppending — добавление. Содержимое файла не удаляется. Указатель устанавливается на конец файла.
В необязательном параметре указываются следующие значения:
- TristateFalse — 0 — кодировка ASCII (значение по умолчанию);
- TristateTrue — -1 — кодировка Unicode;
- TristateUseDefault — -2 — кодировка, используемая в системе по умолчанию.
Пример открытия файла на запись:
Проверка существования файла
Проверить существование файла позволяет метод FileExists() объекта FileSystemObject . В параметре указывается путь к файлу. Метод возвращает значение True , если файл существует и False — в противном случае. Пример:
Получение информации о файле
Получить информацию о файле позволяют следующие свойства объекта File :
- Size — размер файла;
- Path — полный путь к файлу (например, D:\VBA\file1.txt );
- ShortPath — короткий путь к файлу;
- Drive — имя диска (например, D: );
- Name — имя файла без пути;
- ShortName — короткое имя файла;
- Type — тип файла;
- ParentFolder — ссылка на объект родительского каталога;
- DateCreated — дата и время создания файла;
- DateLastAccessed — дата и время последнего доступа к файлу;
- DateLastModified — дата и время последнего изменения файла;
- Attributes — позволяет определить какие атрибуты установлены для файла. Содержит сумму следующих значений:
- 0 — Normal — обычный файл (только чтение);
- 1 — ReadOnly — файл доступен только для чтения (чтение и запись);
- 2 — Hidden — скрытый файл (чтение и запись);
- 4 — System — системный файл (чтение и запись);
- 16 — Directory — путь указывает на каталог (только чтение);
- 32 — Archive — архивный файл (чтение и запись);
- 64 — Alias — имя файла является псевдонимом (только чтение);
- 128 — Compressed — сжатый файл (только чтение).
Проверить, установлен атрибут или нет, позволяет оператор And . Если атрибут установлен, то результатом операции будет ненулевое значение. Если этому свойству присвоить новое значение, то атрибуты файла (доступные для записи) будут изменены.
Пример получения и изменения атрибутов файла показан в листинге 13.1.
Листинг 13.1. Получение и изменение атрибутов файла
Манипулирование файлами
Для манипулирования файлами предназначены следующие методы объекта File :
- Move — позволяет переместить или переименовать файл:
Вместо метода Move() можно воспользоваться методом MoveFile() объекта FileSystemObject . Формат метода:
Пример переименования файла file1.txt в file3.txt :
Параметр может содержать подстановочные знаки в последнем компоненте пути. Например, переместить все текстовые файлы из каталога folder1 в каталог folder2 можно так:
- Copy [, ] — позволяет скопировать содержимое файла в другой файл. Если во втором параметре указано значение True (значение по умолчанию), то существующий файл будет перезаписан, а если значение False — то генерируется ошибка. Пример:
Вместо метода Copy() можно воспользоваться методом CopyFile() объекта FileSystemObject . Формат метода:
Пример создания копии файла file3.txt :
Параметр может содержать подстановочные знаки в последнем компоненте пути. Например, скопировать все текстовые файлы из каталога folder2 в каталог folder1 можно так:
- Delete [] — удаляет файл. Если в параметре указано значение True , то файл удаляется даже в случае, если он доступен только для чтения. По умолчанию параметр имеет значение False . Пример:
Вместо метода Delete() можно воспользоваться методом DeleteFile() объекта FileSystemObject . Формат метода:
Пример удаления файла file3.txt :
Создание временных файлов
С помощью метода GetTempName() объекта FileSystemObject можно сгенерировать уникальное имя для временного файла. Обратите внимание на то, что метод не создает файл, а лишь возвращает уникальное имя в виде строки (например, "radDA657.tmp "). Пример:
Семейство Files
Семейство Files содержит несколько объектов File . Доступ к объекту в коллекции выполняется с помощью метода Item() или с помощью цикла For Each. Next . Получить количество объектов в коллекции позволяет свойство Count .
С помощью свойства Files объекта Folder можно получить ссылку на коллекцию всех файлов в каталоге. В качестве примера выведем названия всех файлов в каталоге:
Статьи по Visual Basic for Applications (VBA)
Помощь сайту
Yandex-деньги: 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
FileSystemObject – это объект, который предоставляет доступ к файловой системе компьютера: дискам, папкам (каталогам), файлам.
Объект FileSystemObject обеспечивает в коде VBA Excel следующие возможности:
- Проверка существования диска, папки или файла.
- Создание новой папки.
- Создание текстового файла и предоставление последовательного доступа для записи.
- Открытие текстового файла и предоставление последовательного доступа для записи или чтения.
- Копирование, перемещение и удаление папок и файлов.
- Работа с путями к папкам и файлам.
- Возвращение имен дисков, папок и файлов.
Создание, свойство, методы
Создание экземпляра FileSystemObject
Создать новый экземпляр объекта FileSystemObject можно с помощью раннего или позднего связывания.
Раннее связывание
Позднее связывание
Свойство FileSystemObject
В VBA Excel у объекта FileSystemObject есть только одно свойство (Excel 2016):
Свойство | Описание |
---|---|
Drives | Возвращение коллекции всех дисков на компьютере |
Методы FileSystemObject
Свойство | Описание |
---|---|
BuildPath | Добавление имени в существующий путь |
CopyFile | Копирование одного или нескольких файлов из одного расположения в другое |
CopyFolder | Копирование одной или нескольких папок из одного расположения в другое |
CreateFolder | Создание новой папки |
CreateTextFile | Создание текстового файла и возвращение объекта TextStream, используемого для записи в файл |
DeleteFile | Удаление одного или нескольких указанных файлов |
DeleteFolder | Удаление одной или нескольких указанных папок |
DriveExists | Проверка существования указанного диска |
FileExists | Проверка существования указанного файла |
FolderExists | Проверка существования указанной папки |
GetAbsolutePathName | Возвращение полного пути из корневого каталога диска для указанного пути |
GetBaseName | Возвращение базового имени указанного файла или папки |
GetDrive | Возвращение объекта Drive, соответствующего диску в указанном пути |
GetDriveName | Возвращение имени диска указанного пути |
GetExtensionName | Возвращение расширения файла для последнего компонента в указанном пути |
GetFile | Возвращение файла по указанному пути |
GetFileName | Возвращение имени файла или папки для последнего компонента в указанном пути |
GetFileVersion | Возвращение версии файла для последнего компонента в указанном пути |
GetFolder | Возвращение папки по указанному пути |
GetParentFolderName | Возвращение имени родительской папки последнего компонента в указанном пути |
GetSpecialFolder | Возвращение пути к некоторым специальным папкам Windows |
GetStandardStream | Возвращение стандартного ввода, вывода или потока ошибок |
GetTempName | Возвращение созданного случайным образом временного файла или папки |
Move | Перемещение указанного файла или папки из одного места в другое |
MoveFile | Перемещение одного или нескольких файлов из одного места в другое |
MoveFolder | Перемещение одного или нескольких папок из одного места в другое |
OpenTextFile | Открытие файла по указанному пути и возвращение объекта TextStream, используемого для чтения, записи и добавления данных в файл |
Смотрите, как с помощью VBA Excel можно открыть папку в проводнике Windows для просмотра.
Примеры кода с FileSystemObject
Пример 1
Получение списка всех дисков на компьютере с помощью свойства Drives:
Если папка, указанная параметром foldername уже существует, произойдет ошибка.
Копирование папки (метод CopyFolder)
CopyFolder – это метод объекта FileSystemObject, предназначенный для копирования папки из одного расположения в другое.
Синтаксис
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется скопировать в другое расположение. Для копирования нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется скопировать папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
overwrite | Логическое значение, которое указывает, требуется ли перезаписывать существующие папки и файлы в конечном расположении. True – папки и файлы будут перезаписаны, False – перезапись не выполняется. Необязательный параметр. По умолчанию – True. |
Перемещение папки (метод MoveFolder)
MoveFolder – это метод объекта FileSystemObject, предназначенный для перемещения папки из одного расположения в другое.
Синтаксис
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется переместить в другое расположение. Для перемещения нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется переместить папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
Удаление папки (метод DeleteFolder)
DeleteFolder – это метод объекта FileSystemObject, предназначенный для удаления папки с диска со всем ее содержимым.
Синтаксис
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
folderspec | Строковое выражение, указывающее папку, которую следует удалить. Для удаления нескольких папок используются подстановочные знаки. |
force | Значение типа Boolean: True – удаляются все папки, False (по умолчанию) – не удаляются папки с атрибутом «только для чтения» (необязательный параметр). |
Метод DeleteFolder удаляет папки независимо от того, есть ли в них содержимое или нет.
Удаление папки (оператор RmDir)
Синтаксис
- path – строковое выражение, определяющее каталог или папку, которую необходимо удалить.
Если удаляемый каталог или папка содержит файлы, произойдет ошибка.
Примеры
Пример 1
Создание папок в VBA Excel с помощью метода CreateFolder:
Добрый день!!
Очень нужна помощь "ЧАЙНИКУ" в написании макроса в VBA.
В кодах HTML немного понимаю, а тут ступор, темный лес и совсем ничего не понятно. Начал изучение Программирования на VBA, читаю книгу "John Walkenbach", но к сожалению время не на моей стороне!!
Причина "паники" в следующем: На работе уволился делопроизводитель, и на меня наловили его обязанности. После нового года приезжает проверка и соответственно все необходимо приводить в соответствие. В общем по каким то там нововведениям все расходные договора должны быть продублированы в электронном виде, то есть все оригиналы должны быть отсканированы и разложены по папочкам на сервере, а так же должна быть создана таблица в Exel со всей информацией по договорам и ссылками на места электронного хранения на сервере. Но уж не знаю по каким причинам, но этого ничего нет СОВСЕМ. Остался месяц до проверки, а там только сканировать недели на две, а создавать базу еще надо.
Дорогие ГУРУ, помогите, пожалуйста создать макрос для решения задачи.
Например у нас есть таблица следующего вида:
Контрагент | Номер договора | Дата договоа | Срок действия с | Срок действия по | Предмет договора | Характер договора |
АЛЬЯНС ООО | РЯЗ-315-17 | 30.11.2017 | 30.11.2017 | 31.12.2017 | Материалы и запасные части, покупные комплектующие изделия | Разовые |
- | РЯЗ-292-17 | 09.11.2017 | 09.11.2017 | 31.12.2017 | Материалы и запасные части, покупные комплектующие изделия | Разовые |
Благоустройство ООО | РЯЗ-223-14 | 01.04.2014 | 01.04.2014 | 31.12.2015 | Услуги сторонних организаций коммунального хозяйства | Постоянные |
- | РЯЗ-157-17 | 01.05.2017 | 01.05.2017 | 31.12.2018 | Услуги сторонних организаций коммунального хозяйства | Постоянные |
Водоканал г.Касимов МУП | РЯЗ-445-16 | 01.03.2016 | 01.03.2016 | 31.12.2017 | Услуги сторонних организаций коммунального хозяйства | Постоянные |
- | РЯЗ-444-16 | 16.06.2016 | 16.06.2016 | 31.12.2017 | Прочие материальные затраты | Разовые |
Исходя из содержимого столбцов макрос должен выполнять следующий алгоритм действий:
1. Проверка директории "Z:\ДОГОВОРЫ\РАСХОДНЫЕ" на наличие папок соответствующих ХАРАКТЕРАМ ДОГОВОРА 7-го столбца таблицы, если каких то папок нет, то создаются такие папки.
2. Проверка директорий "Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ" и "Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ" на наличие папок соответствующих ИМЕНАМ КОНТРАГЕНТОВ 1-го столбца таблицы, если каких то папок нет, то создаются такие папки, а в каждой из них создается папка "УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ". После проверки создаются гиперссылки на папку "УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ" действующую при нажатии на ИМЯ КОНТРАГЕНТА
3. Проверка директории "Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\ИМЯ КОНТРАГЕНТА" и "Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\ИМЯ КОНТРАГЕНТА" на наличие папок соответствующих НОМЕРАМ ДОГОВОРОВ 2-го столбца таблицы относящихся к каждому конкретному КОНТРАГЕНТУ, если каких то папок нет, то создаются такие папки, а в каждой из них создается папка "ИСХОДНЫЕ МАТЕРИАЛЫ". После проверки создаются гиперссылки на папку "НОМЕР ДОГОВОРА" действующую при нажатии на НОМЕР ДОГОВОРА.
В общем примерно вот так должна выглядеть директория:
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\РЯЗ-315-17\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\РЯЗ-315-17\ИСХОДНЫЕ МАТЕРИАЛЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\РЯЗ-292-17\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\АЛЬЯНС ООО\РЯЗ-292-17\ИСХОДНЫЕ МАТЕРИАЛЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\Водоканал г.Касимов МУП\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\Водоканал г.Касимов МУП\УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\Водоканал г.Касимов МУП\РЯЗ-444-16\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\РАЗОВЫЕ\Водоканал г.Касимов МУП\РЯЗ-444-16\ИСХОДНЫЕ МАТЕРИАЛЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\РЯЗ-223-14\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\РЯЗ-223-14\ИСХОДНЫЕ МАТЕРИАЛЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\РЯЗ-157-17\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Благоустройство ООО\РЯЗ-157-17\ИСХОДНЫЕ МАТЕРИАЛЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Водоканал г.Касимов МУП\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Водоканал г.Касимов МУП\УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Водоканал г.Касимов МУП\РЯЗ-445-16\
Z:\ДОГОВОРЫ\РАСХОДНЫЕ\ПОСТОЯННЫЕ\Водоканал г.Касимов МУП\РЯЗ-445-16\ИСХОДНЫЕ МАТЕРИАЛЫ\
Все чего смог добиться за несколько последних дней, это создание папок в директории путем выделения области из нескольких столбцов.
Но таблица имеет кучу повторяющихся ячеек, что само по себе не удобно и занимает кучу времени на составление.
Вот так выглядит кусок этой таблицы:
Иногда бывает необходимо заполучить на лист Excel список файлов в заданной папке и ее подпапках. В моей практике такое встречалось неоднократно, например:
- перечислить в приложении к договору на проведение тренинга список файлов из раздаточных материалов для особо щепетильных юристов в некоторых компаниях
- создать список файлов для ТЗ проекта
- сравнить содержимое папок (оригинал и бэкап, например)
Для реализации подобной задачи можно использовать несколько способов.
Способ 1. Скелет из шкафа - функция ФАЙЛЫ
Этот способ использует древнюю функцию ФАЙЛЫ (FILES) , оставшуюся в Microsoft Excel с далеких девяностых. Вы не найдете эту функцию в общем списке функций, но для совместимости, она всё ещё остаётся внутри движка Excel, и мы вполне можем её использовать.
1. В любую ячейку листа (например, в А1) введём путь к папке, список файлов из которой мы хотим получить.
Обратите внимание, что путь должен оканчиваться шаблоном со звездочками:
- *.* - любые файлы
- *.xlsx - книги Excel (только с расширением xlsx)
- *.xl* - любые файлы Excel
- *отчет* - файлы, содержащие слово отчет в названии
2. Создадим именованный диапазон с помощью вкладки Формулы - далее кнопка Диспетчер имен - Создать (Formulas - Names Manger - Create) . В открывшемся окне введем любое имя без пробелов (например Мои_файлы) и в поле диапазона выражение:
После нажатия на ОК будет создан именованный диапазон с именем Мои_файлы, где хранится список всех файлов из указанной в А1 папки. Останется их оттуда только извлечь.
3. Чтобы извлечь имена отдельных файлов из созданной переменной, используем функцию ИНДЕКС (INDEX) , которая в Excel вытаскивает данные из массива по их номеру:
Если лениво делать отдельный столбец с нумерацией, то можно воспользоваться костылем в виде функции СТРОКИ (ROWS) , которая будет подсчитывать количество заполненных строк с начала списка автоматически:
=ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3) )
= ЕСЛИОШИБКА( ИНДЕКС(Мои_файлы; ЧСТРОК($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 обшарит указанную папку и все вложенные подпапки и выдаст на экран окно с предварительным просмотром результатов:
Если внешний вид списка вас устраивает, то можно смело жать внизу кнопку Загрузить (Load) , чтобы залить эти данные на новый лист. Если же хочется дополнительно обработать список (удалить лишние столбцы, отобрать только нужные файлы и т.п.), то нужно выбрать команду Изменить / Преобразовать данные (Edit / Transform Data).
Поверх окна Excel откроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:
Дальше возможны несколько вариантов:
-
Если нужны только файлы определенного типа, то их можно легко отобрать с помощью фильтра по столбцу Extension:
После того, как необходимые файлы отобраны, можно смело удалить ненужные столбцы, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить (Remove column ) . Это, кстати, уже никак не повлияет на фильтрацию или сортировку нашего списка:
Если в будущем планируется подсчитывать количество файлов в каждой папке (например, для контроля поступивших заявок или подсчета статистики по заявкам), то имеет смысл дополнительно сделать ещё пару действий:
- Щелкните правой кнопкой мыши по столбцу Folder Path и выберите команду Дублировать столбец (Duplicate Column) .
- Выделите скопированный столбец и на вкладке Преобразование (Transform) выберите Разделить столбец - По разделителю (Split Column - By delimiter)
Мы получим рядом с нашими данными еще несколько столбцов, где будут продублированы имена вложенных папок - это пригодится нам чуть позже для подсчета статистики с помощью сводной таблицы:
Получившиеся столбцы можно переименовать (Диск, Папка1, Папка2 и т.д.), просто щёлкнув дважды по заголовку каждого.
И, наконец, когда список готов, то его можно выгрузить на лист с помощью команды Главная - Закрыть и загрузить - Закрыть и загрузить в. (Home - Close & Load - Close & Load to. ) :
И, само-собой, теперь можно построить по нашей таблице сводную (вкладка Вставка - Сводная таблица), чтобы легко подсчитать количество файлов в каждой папке:
Дополнительным бонусом можно сделать еще один столбец с функцией ГИПЕРССЫЛКА (HYPERLINK) , которая создаст красивые стрелочки-ссылки для моментального перехода к каждому файлу:
Мелочь, а приятно :)
И вдвойне приятно, что в будущем, при изменении содержимого исходной папки, достаточно будет просто щелкнуть мышью по нашей таблице и выбрать команду Обновить (Refresh) - и Power Query выполнит всю цепочку запрограммированных нами единожды действий уже автоматически, отобразив все изменения в составе папки.
Читайте также: