Как использовать функцию VBA DIR в Excel (7 практических примеров)

  • Поделись Этим
Hugh West

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

Скачать Рабочую тетрадь для практических занятий

Скачайте следующую тетрадь для практических занятий. Она поможет вам лучше понять предмет.

DIR Function.xlsm

Введение в функцию DIR

Резюме:

Сайт VBA DIR Функция возвращает имя файла или каталога из заданного пути к папке. Обычно она возвращает первый файл.

Синтаксис:

Dir [ (имя пути, [ атрибуты ]) ].

Аргументы Объяснение:

Аргумент Обязательно/Опционально Пояснение
PathName Дополнительно Путь для доступа и указывает файл
Атрибуты Дополнительно Константа или числовое выражение определяет атрибуты соответствующих файлов

Существует несколько заранее определенных атрибутов, это -

Имя атрибута Описание
vbNormal Файлы без определенных атрибутов
vbReadOnly Файлы только для чтения без атрибутов
vbHidden Скрытые файлы без атрибутов
vbSystem Системные файлы без атрибутов
vbVolume Объемная этикетка
vbDirectory Каталоги или папки без атрибутов
vbAlias Указанное имя файла является псевдонимом

7 примеров использования функции VBA DIR в Excel

Из описания вы могли понять, что VBA DIR Функция выдает имя файла по указанному пути. Давайте разберем это на примере. Здесь мы создали каталог Exceldemy_Folder чтобы показать вам различные примеры. В этой папке находятся различные небольшие папки и файлы.

1. Найдите имя файла в пути

В нашей папке мы можем найти определенный файл, объявив путь к имени файла.

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

По этой причине перейдите в Разработчик вкладка>> выбрать Visual Basic . Затем перейдите к Вставка вкладка>> выбрать Модуль. В Общий диалогового окна, мы пишем код.

Поскольку наша задача состоит в том, чтобы найти Имя файла из имени пути, мы установим полное имя пути (от самого корня до файла), и наш код будет выглядеть следующим образом

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub 

Здесь, в нашем коде, мы задали имя пути как E:\Exceldemy\Sales_of_January.xlsx

Разбивка кода:

  • Первоначально мы объявили строковую переменную под названием FN . И выход Дир функция была сохранена в этой переменной.
  • Далее Дир функция находит имя файла и возвращает его по указанному пути.
  • Затем MsgBox задает вывод через окно сообщений. MsgBox возвращает вывод с помощью окна сообщения.
  • Затем запустите код с помощью F5 ключ.

Наконец, мы нашли файл с именем Продажи_за_январь.xlsx .

2. Проверка существования каталога

Мы можем проверить существование каталога с помощью функции Дир Давайте напишем код для проверки того, что функция Exceldemy папка существует. Запишите следующий код в общем поле и запустите его с помощью программы F5 ключ.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " существует" Else MsgBox "Файл не существует" End If End Sub 

Разбивка кода:

  • Мы объявили две переменные; PN содержит полное имя пути к нашему проверочному каталогу.
  • Здесь в пределах Дир функции, мы установили два значения, имя пути и значение атрибута как vbDirectory Это значение атрибута поможет определить каталог. А вывод этой функции сохраняется в файле Файл переменная.
  • Затем мы проверили, пуста ли переменная или нет. Если мы обнаружили, что переменная не пуста, то объявляем о существовании справочника через окно сообщения, в противном случае, возврат не существует.

Здесь Exceldemy каталог существует, поэтому мы найдем " Эксельдеми существует ", где Exceldemy это имя папки.

3. Создание несуществующей папки

Вы можете создать папку, которая не существует на вашем компьютере. Для этого вам нужно создать имя пути, которое не существует в ваших папках. Представим, что мы собираемся создать каталог под названием Exceldemy_1 Мы будем использовать MkDir команду для создания каталога, но перед этим нам нужно написать следующее VBA код.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Папка файла существует" Else MkDir PN MsgBox "Была создана папка файла с именем" & File End If End Sub 

Здесь мы написали команду для создания каталога, используя имя пути из файла Else блок нашего кода. Запускайте код с F5 ключ.

Каталог был создан. Давайте посмотрим на папку каталога. The Exceldemy_1 папка теперь видна на вашем компьютере.

Похожие чтения:

  • Как вызвать подвызов в VBA в Excel (4 примера)
  • Возврат значения в функции VBA (значения из массива и без массива)
  • Использование функции VBA UCASE в Excel (4 примера)
  • Как использовать функцию TRIM в VBA в Excel (определение + код VBA)

4. Найти первый файл из каталога

Основная задача Дир Функция должна найти первый файл в указанном каталоге. Все, что вам нужно указать внутри функции, это имя пути (до каталога-контейнера), и она вернет самый первый файл из этого каталога.

Давайте найдем первый файл из нашего Exceldemy каталог. Наш код будет

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "Первый файл: " & FN End Sub 

Вы можете видеть основной код; мы передали имя пути в функцию Дир функция. Сейчас Запускайте код с F5 ключ, вы найдете первый файл в этом каталоге.

5. Найти все файлы из каталога

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

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Список файлов:" & FL) End Sub 

Вот две переменные для хранения имен файлов как одного ( FN ), и в виде списка ( FL ). Делать пока цикл итерирует до тех пор, пока в каталоге не останется ни одного файла, используя этот цикл, мы заталкиваем каждое имя файла в FL переменная.

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

6. Найти все файлы и папки из каталога

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

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub 

Изменения в нашем коде заключаются только в использовании параметров атрибутов. Мы использовали параметр vbDirectory в этой области. Запускайте код, и вы найдете все файлы и вложенные папки Exceldemy_Folder .

7. найти все файлы определенного типа

Использование VBA Dir мы можем найти любой конкретный тип файла. Давайте рассмотрим это на примере.

Мы собираемся найти .csv файлы из нашей директории. Наш код будет выглядеть следующим образом -

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Список .csv файлов:" & FL) End Sub 

Мы надеемся, что вы поняли код, который использует аналогичный механизм поиска файлов. В имени пути мы использовали подстановочный знак ( * ). Эта звездочка (*) означает, что может встречаться любой символ вплоть до любого числа. Подстановочный знак использован таким образом, что имя файла может быть любым, но должно быть .csv файл.

Когда вы запустите код, он вернет значение .csv файлы из нашего Exceldemy каталог.

Практическая секция

На каждом листе с правой стороны мы предусмотрели раздел для практики. Пожалуйста, выполняйте его самостоятельно.

Заключение

Вот и все о сегодняшнем занятии. А это несколько простых примеров того. VBA Dir Функция в Excel. Пожалуйста, сообщите нам в разделе комментариев, если у вас есть вопросы или предложения. Для лучшего понимания, пожалуйста, скачайте практический лист. Посетите наш сайт, Exceldemy Спасибо за ваше терпение при чтении этой статьи.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.