VBA DIR
Функция Excel VBA DIR
Dir — одна из функций, доступных в VBA. Функция Dir предназначена для ссылки на каталоги в коде VBA.
Функция, которая возвращает имя файла или каталога, которое соответствует данному атрибуту или строке, в противном случае возвращает первый файл или папку. Проще говоря, если у нас есть папка ABC и внутри ABC есть файл XYZ, то мы можем получить доступ к файлу XYZ с помощью функции DIR в VBA.
Формула для функции DIR в Excel VBA
Функция DIR имеет следующий синтаксис в Excel VBA:
Он состоит из двух частей: Pathname и Attributes.
- Путь: по имени каждый может понять, что это путь к файлу, в котором он существует. Если мы не введем какой-либо путь в pathname, он вернет пустую строку.
- Атрибут: это необязательный аргумент, мы не используем это много. Мы можем использовать это, когда мы хотим открыть файл с указанными ниже атрибутами, тогда VBA ищет эти файлы.
| vbArchive | Определяет архивы или резервные файлы. |
| vbNormal | Обычный (по умолчанию) или без атрибутов. |
| vbReadOnly | файлы только для чтения |
| vbSystem | Системные файлы |
| vbVolume | Метка тома; Если вы используете какой-либо другой атрибут с этим атрибутом, метка тома игнорируется. |
| vbDirectory | Каталоги или папки. |
| vbHidden | скрытые файлы |
| vbAlias | Имя файла является псевдонимом |
Как использовать функцию DIR в Excel VBA?
Ниже приведены различные примеры использования функции DIR в Excel с использованием кода VBA.
Вы можете скачать этот шаблон VBA DIR Excel здесь — Шаблон VBA DIR Excel
Функция VBA DIR — Пример # 1
В этом примере мы увидим, как получить доступ к имени файла с помощью функции DIR в VBA.
Шаг 1. Перейдите на вкладку « Разработчики » и нажмите на Visual Basic
Шаг 2: Откройте модуль из меню «Вставка», как показано ниже.
Шаг 3: Чтобы запустить любой макрос, сначала нам нужно дать имя макросу с ключевым словом «sub», как показано ниже.
Код:
Помните, что мы пишем наш код в «Module1», когда вводим «sub myexample ()», автоматически появляется «End sub».
Шаг 4: Определите строку, используя ключевое слово « Dim », которое относится к измерению. На скриншоте ниже «mystring» — это имя строки.
Код:
Помните, что когда вы определяете имена типов данных или имен программ, между двумя словами не должно быть пробелов. «Mystring» нет пробела между «my» и «string».
Файл доступен в папке примеров, которая доступна на рабочем столе, и имя файла — «KT tracker mine».
C: \ Users \ cba_13 \ Desktop \ Sample \
Шаг 5: Теперь нам нужно сохранить имя файла в «mystring» с помощью функции Dir.
Код:
На приведенном выше снимке экрана в функции Dir я указал путь к файлу, исключая имя файла. Поскольку существует только один файл, он вернет имя файла.
Шаг 6: Теперь с помощью вышеприведенного шага имя файла сохраняется в строке «mystring». Чтобы отобразить имя файла, нам нужно отобразить его через окно сообщения. Создать окно сообщения.
Код:
Мы дали инструкцию отображать данные в «mystring» через окно сообщения, так как «mystring» имеет имя файла, оно будет отображать имя файла через окно сообщения.
Шаг 7: Теперь запустите код, нажав на кнопку Play или нажав клавишу F5.
Функция VBA DIR — Пример № 2
В этом примере мы увидим, как открыть файл с помощью функции DIR в Excel VBA.
Шаг 1: Откройте экран кода VBA и начните с присвоения имени программы «example2» или любого имени, которое вы пожелаете.
Код:
Шаг 2: Определите две строки с именами «Foldername» и «Filename».
Код:
Шаг 3: Теперь назначьте путь к папке с именем папки.
Код:
Шаг 4. Назначьте файл «filename» с помощью функции Dir. Здесь мы использовали переменную «Foldername», потому что она имеет путь к папке. С помощью амперсанда мы добавили имя файла в путь.
Код:
Теперь функция Dir возвращает имя файла и будет хранить его в переменной «имя файла».
Шаг 5: В предыдущем примере мы использовали окно сообщения, чтобы увидеть результаты. Но в этом мы хотим открыть файл, поэтому будем использовать команду «workbooks.open».
Код:
Шаг 6: Запустите приведенный выше код, он откроет файл, доступный в папке «C: \ Users \ cba_13 \ Desktop \ Sample \» с именем файла «KT Tracker mine».
Функция VBA DIR — Пример № 3
Теперь мы увидим программу, чтобы узнать, доступна ли папка или нет. У меня есть папка «Данные», как показано ниже.
Мы должны проверить с помощью функции Dir, доступна ли папка «Data» по пути C: \ Users \ cba_13 \ Desktop \ Sample \.
Шаг 1. Создайте имя программы и определите две строки с именами FD и FD1.
Код:
Шаг 2: Назначьте путь к папке переменной «Fd».
Код:
Шаг 3: Теперь используйте функцию Dir, чтобы вернуть имя папки, как показано ниже.
Код:
Результатом функции Dir должно быть имя папки, и она будет храниться в строковой переменной Fd1. Если папка «Данные» недоступна в соответствующей папке, она не вернет ни одной строки.
Шаг 4: Теперь нам нужно проверить, есть ли у Fd1 папка «Данные» или нет. Используйте условие IF, чтобы проверить, есть ли в Fd1 строка «Данные» или нет. Если оно доступно, распечатайте заявление как «Существует».
Код:
Шаг 5: В случае, если Fd1 не совпадает с папкой «Данные», выведите инструкцию «Не существует» в другом состоянии.
Код:
Шаг 6: Завершите цикл «Если», как показано на скриншоте ниже.
Код:
Шаг 7: Запустите код, нажав клавишу F5 или нажав кнопку Play, чтобы проверить, доступна ли папка или нет. Если в этой папке есть папка «Данные», она вернет окно с сообщением «Существует», как показано ниже.
Шаг 8: Просто измените имя папки на Data1.
Шаг 9: Запустите код еще раз. Теперь результат «Не существует», как показано ниже.
То, что нужно запомнить
- Аргументы в функции Dir являются необязательными.
- Если нам нужны скрытые файлы, папки или каталоги другого типа, укажите ваше требование во втором аргументе.
- Используйте «\» в конце имени папки, указав функцию Dir, чтобы войти в папку.
- Если мы хотим позвонить или открыть несколько файлов, мы можем использовать подстановочный знак «*» или «?».
Рекомендуемые статьи
Это руководство к функции VBA DIR. Здесь мы обсудим, как использовать функцию DIR в Excel VBA вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Рабочая тетрадь VBA
- НЕПРАВИЛЬНАЯ функция в Excel
- VBA Count
- Функция Excel XOR
Источник
Функция Dir
Возвращает значение типа String, определяющее имя файла, каталога или папки, которое соответствует указанному шаблону, атрибуту файла либо метке тома диска.
Синтаксис
Dir [ (pathname, [ attributes ] ) ]
Синтаксис функции Dir состоит из следующих элементов.
| Часть | Описание |
|---|---|
| pathname | Необязательный. Строковое выражение, указывающее имя файла; может включать каталог или папку, а также диск. Если файл, указанный параметром pathname, не найден, возвращается строка нулевой длины («»). |
| attributes | Необязательный. Константа или числовое выражение, определяющее атрибуты файла. Если этот параметр опущен, возвращаются файлы, которые соответствуют параметру pathname, но не имеют атрибутов. |
Параметры
Аргумент attributes может принимать следующие значения.
| Константа | Значение | Описание |
|---|---|---|
| vbNormal | 0 | (По умолчанию.) Определяет файлы без атрибутов. |
| vbReadOnly | 1 | В дополнение к файлам без атрибутов определяет файлы, доступные только для чтения. |
| vbHidden | 2 | Определяет скрытые файлы, а также файлы без атрибутов. |
| vbSystem | 4 | В дополнение к файлам без атрибутов определяет системные файлы. Недоступно в macOS. |
| vbVolume | 8 | Определяет метку тома; если указан какой-либо другой атрибут, параметр vbVolume игнорируется. Недоступно в macOS. |
| vbDirectory | 16 | В дополнение к файлам без атрибутов определяет каталоги (папки). |
| vbAlias | 64 | Указанное имя файла является псевдонимом. Доступно только в macOS. |
Эти константы определены в Visual Basic для приложений и могут использоваться в коде вместо фактических значений.
Примечания
В Microsoft Windows функция Dir поддерживает использование знака умножения (*) и одиночного символа (?) в качестве подстановочных знаков для указания нескольких файлов. В macOS такие знаки воспринимаются как допустимые символы имени файла и не могут использоваться в качестве подстановочных знаков.
Так как macOS не поддерживает использование подстановочных знаков, для определения группы файлов используйте тип файла. Чтобы вместо имен файлов указать тип файла, воспользуйтесь функцией MacID. Например, следующий оператор возвращает имя первого текстового файла в текущей папке:
Чтобы вывести следующий файл в папке, укажите пустую строку:
Если функция MacID используется с функцией Dir в Microsoft Windows, возникает ошибка.
Любое значение атрибута, превышающее 256, считается значением MacID.
Значение pathname необходимо указать при первом вызове функции Dir, иначе произойдет ошибка. Если задаются атрибуты файла, значение pathname также должно быть указано.
Функция Dir возвращает первое имя файла, соответствующее значению pathname. Для получения дополнительных имен файлов, соответствующих значению pathname, вызовите функцию Dir повторно без аргументов. Если других соответствий найдено не будет, функция Dir возвратит пустую строку («»). После возврата строки нулевой длины в последующих вызовах необходимо указывать значение pathname, иначе произойдет ошибка.
Значение pathname можно изменить без получения всех имен файлов, соответствующих текущему значению pathname. Однако нельзя осуществить рекурсивный вызов функции Dir. С помощью функции Dir с атрибутом vbDirectory невозможно последовательно возвращать подкаталоги.
В Excel для Mac 2016 исходный вызов функции Dir осуществится успешно. Однако последующие вызовы для итерации по указанному каталогу приведут к ошибке. К сожалению, это известная ошибка.
Поскольку имена файлов возвращаются в произвольном порядке, их можно сохранить в массиве и отсортировать.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник