Funkcja VBA DIR - Jak korzystać z funkcji Excel VBA DIR?

Spisie treści

Funkcja Excel VBA DIR

Funkcja VBA DIR jest również znana jako funkcja katalogu, jest to wbudowana funkcja w VBA, która służy do podania nazwy pliku danego pliku lub folderu, ale musimy podać ścieżkę do pliku, dane wyjściowe zwrócone przez to funkcja jest ciągiem, ponieważ zwraca nazwę pliku, istnieją dwa argumenty tej funkcji, którymi są nazwa ścieżki i atrybuty.

Funkcja DIR zwraca pierwszą nazwę pliku w określonej ścieżce folderu. Na przykład na dysku D, jeśli masz folder o nazwie 2019 iw tym folderze, jeśli masz plik programu Excel o nazwie „Sprzedaż w 2019 r.”, Możesz uzyskać dostęp do tego pliku za pomocą funkcji DIR.

Funkcja „VBA DIR” jest bardzo pomocna w uzyskaniu nazwy pliku przy użyciu folderu ścieżki.

Składnia

Ta funkcja ma dwa opcjonalne argumenty.

  • (Nazwa ścieżki): Jak sama nazwa wskazuje, jaka jest ścieżka dostępu do pliku. Może to być również nazwa pliku, nazwa folderu lub katalogu. Jeśli jakakolwiek ścieżka nie jest przypisana, zwrócę pustą wartość ciągu, tj. „
  • (Atrybuty): jest to również opcjonalny argument i możesz nie używać go zbyt często w kodowaniu. Możesz określić atrybut pliku w (Nazwa ścieżki), a funkcja DIR szuka tylko tych plików.

Na przykład: Jeśli chcesz uzyskać dostęp tylko do ukrytych plików, jeśli chcesz uzyskać dostęp tylko do plików tylko do odczytu itp.… Możemy określić w tym argumencie. Poniżej znajdują się atrybuty, których możemy użyć.

Przykłady użycia funkcji VBA DIR

Przykład # 1 - Dostęp do nazwy pliku za pomocą funkcji DIR

Wyjaśnię ci prosty przykład dostępu do nazwy pliku za pomocą funkcji DIR. Wykonaj poniższe kroki.

Krok 1: Utwórz nazwę makra.

Krok 2: Zdefiniuj zmienną jako ciąg .

Kod:

Sub Dir_Example1 () Dim MyFile As String End Sub

Krok 3: Teraz dla tej zmiennej przypiszemy wartość za pomocą funkcji DIR .

Kod:

Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub

Krok 4: Teraz skopiuj i wklej ścieżkę folderu plików na swoim komputerze. Podaj nazwę ścieżki w cudzysłowach.

Kod:

Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: VBA Template End Sub

Krok 5: Wspomniałem o mojej ścieżce do folderu, teraz musimy również podać nazwę pliku i jego rozszerzenie. Aby to zrobić, najpierw musimy umieścić ukośnik odwrotny po ścieżce ()

Po wpisaniu ukośnika odwrotnego musimy podać pełną nazwę pliku .

Kod:

Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: VBA Template VBA Dir Excel Template.xlsm") End Sub

Krok 6: Pokaż wartość zmiennej w oknie komunikatu.

Kod:

Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: VBA Template VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub

Teraz uruchom kod i zobacz, jaki jest wynik okna komunikatu.

Dlatego funkcja DIR zwróciła nazwę pliku z rozszerzeniem.

Przykład # 2 - Otwórz plik za pomocą funkcji DIR

Jak teraz otworzymy plik? Ta funkcja może zwrócić nazwę pliku, ale otwarcie tego pliku to trochę inny proces. Wykonaj poniższe czynności, aby otworzyć plik.

Krok 1: Utwórz dwie zmienne jako ciąg .

Kod:

Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub

Krok 2: Teraz dla zmiennej FolderName przypisz ścieżkę folderu.

Kod:

Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: VBA Template " End Sub

Krok 3: Teraz dla zmiennej FileName musimy uzyskać nazwę pliku za pomocą funkcji DIR .

Kod:

Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: VBA Template " FileName = Dir (End Sub

Krok 4: Teraz dla nazwy ścieżki przypisaliśmy już ścieżkę do zmiennej FolderPath, więc możemy bezpośrednio podać zmienną tutaj.

Kod:

Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: VBA Template " FileName = Dir (FolderName End Sub

Krok 5: Teraz musimy podać nazwę pliku. Używając symbolu ampersand (&), przypisz nazwę pliku.

Kod:

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

Step 6: Now use the WORKBOOKS.OPEN method.

Code:

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

Step 7: File Name is a combination of FolderPath & FileName. So combine these two.

Code:

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

Now run this code. It will open the mentioned file name.

Example #3 - Multiple Open Workbooks using DIR Function

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 to 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

Uczyń natychmiastowe okno widoczne, naciskając Ctrl + G.

Teraz uruchom kod. Otrzymamy wszystkie nazwy plików w bezpośrednim oknie.

Interesujące artykuły...