Excel VBA DIR функция
Функцията VBA DIR е известна също като функция на директорията, това е вградена функция във VBA, която се използва, за да ни даде името на файла на даден файл или папка, но трябва да предоставим пътя за файла, изхода, върнат от това Функцията е низ, тъй като връща името на файла, има два аргумента към тази функция, които са името на пътя и атрибутите.
Функцията DIR връща първото име на файла в посочения път на папката. Например във вашия D Drive, ако имате име на папка, наречена 2019, и в тази папка, ако превъзхождате файл с име „2019 Продажби“, тогава можете да получите достъп до този файл, като използвате функцията DIR.
Функцията „VBA DIR“ е много полезна за получаване на името на файла, като се използва папката с неговия път.
Синтаксис
Тази функция има два незадължителни аргумента.
- [Име на пътя]: Както името казва какъв е пътят за достъп до файла. Това може да е името на файла, името на папката или директорията. Ако някакъв път не е зададен, ще върна празна стойност на низ, т.е. “”
- [Атрибути]: Това също е незадължителен аргумент и може да не използвате това много често при кодиране. Можете да посочите атрибута на файла в [Име на пътя] и функцията DIR търси само тези файлове.
Например: Ако искате да получите достъп само до скрити файлове, ако искате да получите достъп само до файлове само за четене и т.н. ... можем да посочим в този аргумент. По-долу са атрибутите, които можем да използваме.
Примери за използване на VBA DIR функция
Можете да изтеглите този шаблон на VBA Dir Excel тук - VBA Dir Excel шаблонПример # 1 - Достъп до името на файла чрез DIR функция
Ще ви обясня простия пример за достъп до името на файла чрез функцията DIR. Следвайте стъпките по-долу.
Стъпка 1: Създайте име на макрос.
Стъпка 2: Определете променливата като String .
Код:
Sub Dir_Example1 () Затъмнява MyFile като низ в края Sub
Стъпка 3: Сега за тази променлива ще присвоим стойност с помощта на функцията DIR .
Код:
Sub Dir_Example1 () Dim MyFile като низ MyFile = Dir (End Sub
Стъпка 4: Сега копирайте и поставете пътя на папката с файлове на вашия компютър. Споменете името на пътя в двойни кавички.
Код:
Sub Dir_Example1 () Dim MyFile като низ MyFile = Dir ("E: \ VBA Шаблон Край Sub
Стъпка 5: Споменах пътя си към папката, сега трябва да споменем и името на файла и неговото разширение. За да направим това първо нещо, което трябва да направим, е да поставим обратна наклонена черта след пътя (\)
След въвеждане на обратната наклонена черта трябва да въведем пълното име на файла .
Код:
Sub Dir_Example1 () Dim MyFile като низ MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub
Стъпка 6: Покажете стойността на променливата в полето за съобщение.
Код:
Sub Dir_Example1 () Dim MyFile като низ MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub
Сега стартирайте кода и вижте какъв е резултатът от полето за съобщение.
Така че функцията DIR връща името на файла с разширението на файла.
Пример # 2 - Отворете файла с помощта на DIR функция
Сега как да отворим файла? Тази функция може да върне името на файла, но отварянето на този файл е малко по-различен процес. Следвайте стъпките по-долу, за да отворите файла.
Стъпка 1: Създайте две променливи като String .
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub
Стъпка 2: Сега за променлива FolderName задайте пътя на папката.
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub
Стъпка 3: Сега за променливата FileName трябва да получим името на файла, като използваме функцията DIR .
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub
Стъпка 4: Сега за Path Name вече сме задали път към променливата FolderPath, така че можем директно да предоставим променливата тук.
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub
Стъпка 5: Сега трябва да предоставим името на файла. Чрез използването на символа за амперсанд (&) задайте името на файла.
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub
Стъпка 6: Сега използвайте метода WORKBOOKS.OPEN .
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub
Стъпка 7: Името на файла е комбинация от FolderPath & FileName . Така че комбинирайте тези две.
Код:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub
Сега стартирайте този код, той ще отвори споменатото име на файл.
Пример # 3 - Отворете множество работни книги с помощта на DIR функция
Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.
The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”
Here * will match any file name with the extension of the file is equal to “xlsm”.
Code:
Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub
Now the above code will open all the files in the folder path.
FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.
Example #4 – Get all the File Names in the Folder
Suppose if you want the list of all the file names in the folder we can also do this by using attributes.
Code:
Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName "" Debug.Print FileName FileName = Dir() Loop End Sub
Make the immediate window visible by pressing Ctrl + G.
Now run the code we will get all the file names in the immediate window.