Как да използвате функцията 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. Намерете името на файла от пътя

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

След като копирате пътя на файла, трябва да стартирате кода.

Поради тази причина отидете в Разработчик tab>> изберете Visual Basic . След това отидете в Вмъкване на tab>> изберете Модул. В Обща информация диалогов прозорец, записваме кода.

Тъй като нашата програма е да намерим Име на файла от името на пътя, ще зададем пълното име на пътя (от самия корен до файла) и нашият код ще бъде

 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 & " exists" Else MsgBox "The file doesn't exist" End If End Sub 

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

  • Декларирахме две променливи; PN съдържа пълното име на директорията за проверка.
  • Тук в рамките на Дир зададохме две стойности - името на пътя и стойността на атрибута като vbDirectory . Тази стойност на атрибута ще помогне за откриване на директорията. И изходът на тази функция се съхранява в Файл променлива.
  • След това проверихме дали променливата е празна или не е. Ако установим, че променливата не е празна, обявяваме съществуването на директорията чрез поле за съобщения, в противен случай връщането не съществува.

Тук Exceldemy директорията съществува, така че ще намерим " Съществува 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 

Тук сме написали команда за създаване на директория, като използваме името на пътя от В противен случай на нашия код. Изпълнявайте кода с F5 ключ.

Директорията е създадена. Нека да разгледаме папката с директории. Exceldemy_1 вече е видима в компютъра ви.

Подобни четива:

  • Как да извикате Sub във 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 на едно гише, за да разберете за разнообразни видове методи за Excel. Благодаря за търпението ви при четенето на тази статия.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.