VBA FreeFile - Jak korzystać z funkcji FreeFile w Excel VBA?

Spisie treści

Excel VBA FreeFile

FreeFile to funkcja w 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 następny dostępny numer pliku.

Zwykle otwieramy pliki z naszego komputera, aby coś zapisać 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.

Teraz spójrz na składnię instrukcji OPEN.

OTWÓRZ (adres ścieżki pliku) Dla (tryb otwierania) Jako (numer pliku)

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

Tryb do otwarcia: Otwierając plik, musimy wiedzieć, jaki model zastosujemy. Możemy tutaj użyć trzech sposobów: „Tryb wprowadzania”, „Tryb wyjścia” i „Tryb dołączania”.

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 - w tym przypadku funkcja „FreeFile” odgrywa istotną rolę i zwraca unikalną liczbę całkowitą.

Jak korzystać z funkcji FreeFile w Excel VBA?

Teraz spójrz na poniższy kod.

Kod:

Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Artykuły 2019 File 1.txt" FileNumber = FreeFile Otwórz ścieżkę do wyjścia 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 pliku wymienionym powyżej.

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 uruchamiania tego, ż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 jedną, 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, a FreeFile rozpoznaje nowo otwarty plik jako nowy i zwraca liczbę całkowitą jako 1.

Interesujące artykuły...