VBA FreeFile

Excel VBA FreeFile

FreeFile to funkcja w języku VBA, która jest dostępna tylko jako funkcja VBA, a nie jako funkcja arkusza. Funkcja VBA FreeFile zwraca unikalną liczbę całkowitą do pliku, który jest otwierany i zachowuje numer dla następnego dostępnego numeru pliku.

Zwykle otwieramy pliki z naszego komputera, aby coś napisać lub tylko do odczytu, odnosząc się do tych plików, musimy odwołać się do unikalnej liczby całkowitej. Funkcja VBA FreeFile pozwala nam określić tę unikalną liczbę całkowitą, którą należy przypisać do otwarcia pliku w celu odczytu, zapisu i otwierania plików za pomocą VBA.

Spójrz teraz na składnię instrukcji OPEN.

OPEN [File Path Address] For [Mode to Open] As [File Number]

Adres ścieżki pliku: Musimy podać adres pliku na naszym komputerze, który próbujemy otworzyć.

Tryb do otwarcia: Otwierając plik musimy mieć świadomość, jaki model będziemy stosować. Możemy tu użyć trzech trybów: „Input Mode”, „OutPut Mode” i „Append Mode”.

Tryb wejściowy do odczytu tylko pliku.

Tryb wyjściowy, aby usunąć istniejące dane i wstawić nowe dane.

Tryb dołączania, aby dodać nowe dane, zachowując istniejące dane.

Numer pliku: za pomocą tego argumentu możemy odwołać się do pliku, który otwieramy. Tutaj funkcja „FreeFile” odgrywa istotną rolę i zwraca unikalną liczbę całkowitą.

Jak korzystać z funkcji FreeFile w Excel VBA?

Możesz pobrać ten szablon VBA FreeFile Excel tutaj - Szablon VBA FreeFile Excel

Teraz spójrz na poniższy kod.

Kod:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Otwórz ścieżkę do wyprowadzenia jako FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Otwórz ścieżkę do wyprowadzenia jako FileNumber End Sub." 

Teraz pozwól mi rozszyfrować powyższy kod, abyś zrozumiał.

Najpierw zadeklarowałem dwie zmienne.

 Dim Path As String, Dim FileNumber As Integer 

Następnie przypisałem ścieżkę do pliku wraz z jego nazwą.

Ścieżka = „D: \ Artykuły \ 2019 \ Plik 1.txt”

Następnie dla jeszcze jednej zmiennej przypisałem funkcję FREEFILE.

FileNumber = FreeFile

Następnie użyłem instrukcji Open, aby otworzyć plik tekstowy w wyżej wymienionej ścieżce do pliku.

 Otwórz ścieżkę do wyprowadzenia jako numer pliku

Ok, teraz uruchomię kod wiersz po wierszu, naciskając klawisz F8 i zobaczę wartość zmiennej „FileNumber”.

Pokazuje numer pliku jako 1. Tak więc funkcja wolnego pliku automatycznie rezerwuje ten numer dla pliku otwierającego. Podczas tego działania żadne inne pliki nie są otwierane.

Teraz będę wykonywał następną linię kodu VBA i zobaczę, jaki jest numer pliku, jeśli przejdę do następnej linii.

Teraz jest napisane 2. Funkcja FreeFile rezerwuje unikalną liczbę całkowitą 2 do drugiego pliku otwierającego.

Funkcja FreeFile zawsze zwraca 1, jeśli zamkniemy plik Excel

Jedną z rzeczy, na które musimy zwrócić uwagę, jest to, że funkcja VBA „FreeFile” zawsze zwraca 1, jeśli zamykamy otwarty plik przed otwarciem drugiego pliku Excela.

Na przykład spójrz na poniższy kod.

Kod:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Otwórz ścieżkę do wyprowadzenia jako FileNumber Close FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Otwórz ścieżkę do wyprowadzenia jako FileNumber Zamknij FileNumber End Sub 

Teraz ponownie wykonam kod wiersz po wierszu, naciskając klawisz F8.

Jak zwykle mówi 1.

Teraz przejdę do następnego poziomu.

Już w drugiej próbie mówi 1.

Powodem tego jest fakt, że użyliśmy instrukcji Close file, ponieważ FreeFile rozpoznaje nowo otwarty plik jako nowy i zwraca liczbę całkowitą jako 1.