Excel VBA FreeFile

Jak często będąc użytkownikiem programu Excel otwierasz plik i pracujesz nad nim? Bardzo często, prawda? Ponownie możliwe jest zautomatyzowanie zadań otwierania pliku w programie Excel za pomocą potężnego narzędzia VBA, które pozwala pisać makra i ostatecznie automatyzuje wszystkie zadania, zaczynając od otwarcia pliku z określonej lokalizacji, aby użyć, zapisać i zamknąć go w tym samym ścieżka. Mówiąc o zautomatyzowaniu procesu otwierania i zamykania plików za pomocą VBA, bardzo ważne jest zindeksowanie pliku, aby system mógł zidentyfikować plik, który ma być użyty w czasie wykonywania. W VBA dostępna jest funkcja FreeFile, która służy temu celowi.

Co to jest funkcja VBA FreeFile?

VBA FreeFile to funkcja sklasyfikowana w ramach funkcji VBA, która pozwala systemowi zarezerwować numer do otwarcia następnego pliku w pliku wejściowym pliku VBA, co zapewnia płynne kodowanie i redukuje niepotrzebne błędy w kodzie. Po otwarciu pliku za pomocą pliku VBA pliku we / wy (wejście / wyjście) absolutnie obowiązkowe staje się przypisanie temu plikowi unikalnego numeru, ponieważ w lokalizacji, której zamierzasz użyć do odczytu, zapisu i otwierania, możesz mieć wiele plików kod. Skąd system wie, który ze wszystkich plików chcesz otworzyć? Funkcja VBA FreeFile identyfikuje unikalny numer, który przypisujemy do pliku i udostępnia go do otwierania, odczytu lub zapisu w VBA.

Składnia funkcji FreeFile jest następująca:

Ta funkcja przyjmuje tylko jeden argument RangeNumber, który ma standardowe wartości zero (0) i jeden (1). Jeśli podasz zero, numer pliku zostanie przypisany w zakresie liczb od 1 do 255 krokowo dla każdego otwieranego pliku. Jeśli wybierzesz jeden, numer pliku zostanie przypisany krokowo w zakresie od 256 do 511 krokowo dla każdego otwieranego pliku. Jeśli nie podano RangeNumber, zero będzie domyślnie brane pod uwagę.

Jak korzystać z funkcji FreeFile w programie Excel VBA?

Poniżej znajdują się różne przykłady użycia funkcji FreeFile w programie Excel VBA.

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

VBA FreeFile - Przykład nr 1

Wykonaj poniższe kroki, aby użyć funkcji FreeFile w programie Excel VBA.

Krok 1: Otwórz nowy edytor Visual Basic (VBE), klikając przycisk Visual Basic pod zakładką Deweloper w pliku Excel lub naciskając jednocześnie klawisze Alt + F11 .

Krok 2: Włóż nowy moduł do VBE. Kliknij przycisk Wstaw . Wybierz Moduł z listy opcji dostępnych we Wstaw.

Krok 3: Zdefiniuj nową podprocedurę, która może przechowywać twoje makro.

Kod:

 Sub Przykład_1 () End Sub 

Krok 4: Zdefiniuj dwie nowe zmienne, plik_1 i plik_2 jako liczbę całkowitą. Te dwie zmienne będą zawierać liczby, które przypisujemy do każdego pliku, który otwieramy w całym makrze.

Kod:

 Sub Przykład_1 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Krok 5: Użyj operatora przypisania, aby przypisać wartość całkowitą 1 do zmiennej file_1 za pomocą VBA FreeFile.

Kod:

 Sub Przykład_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile End Sub 

Krok 6: Teraz użyj instrukcji Open, której można użyć do otwarcia pliku w VBA.

Kod:

 Sub Przykład_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Do wyjścia jako plik_1 End Sub 

Podaliśmy tutaj ścieżkę, na której znajduje się plik. Instrukcja For udostępnia opcje, takie jak sposób otwarcia pliku (np. Jako dane wyjściowe), a instrukcja As określa numer pliku, który podaliśmy za pomocą instrukcji FreeFile.

Krok 7: Wykonaj kroki 5 i 6, aby przypisać nowy numer do drugiego pliku za pomocą zmiennej file_2 i otwórz go.

Kod:

 Sub Przykład_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Do wydruku Jako plik_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Do wyjścia Jako plik_2 End Sub 

Krok 8: Chcielibyśmy teraz zobaczyć numery, które faktycznie są przypisane do obu plików tekstowych. Możesz uruchomić każdą linię jeden po drugim za pomocą klawisza F8. Jednak wynik nie będzie dla ciebie widoczny. Ani w pliku Excel, ani w oknie Natychmiastowe. Dodaj następującą instrukcję MsgBox, która wyświetla okno komunikatu z liczbami dla każdego pliku.

Kod:

 Sub Przykład_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Do wydruku Jako plik_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Do wyjścia Jako plik_2 MsgBox „Wartość dla pliku_1 to:” i plik_1 i Chr (13) oraz „Wartość dla pliku_2 to:” i plik_2 Koniec podrzędny 

W tym wierszu kodu pierwszy wiersz okna komunikatu będzie zawierał tekst „wartość dla pliku_1 to:” oraz wartość liczbową przypisaną za pomocą funkcji FreeFile. Chr (13) pozwala na wyświetlenie następnego wiersza. W następnym wierszu komunikatu pojawi się komunikat „Wartość dla pliku_2 to:” i numer przypisany do drugiego pliku.

Krok 9: Uruchom ten kod, naciskając przycisk Uruchom lub naciskając klawisz F5.

W ten sposób funkcja FreeFile pozwala przypisać numer do pliku, który zamierzasz otworzyć, odczytać, zamknąć przez VBA.

VBA FreeFile - przykład nr 2

Jeśli zamkniemy plik, który otwieramy za każdym razem, to nowy plik, który otwieramy, będzie zawsze miał numer seryjny 1 za każdym razem, gdy zostanie otwarty. Wykonaj poniższe czynności, aby przejść przez to.

Krok 1: Zdefiniuj nową podprocedurę, która może przechowywać twoje makro.

Kod:

 Sub Przykład_2 () End Sub 

Krok 2: Zdefiniuj dwie zmienne file_1 i file_2 jako liczbę całkowitą w ramach nowo zdefiniowanej podprocedury.

Kod:

 Sub Przykład_2 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Krok 3: Teraz użyj FreeFile, aby przypisać numer do podanego pliku, a instrukcja Open, aby otworzyć ten plik przez lokalizację, w której go mamy.

Kod:

 Sub Przykład_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Do wyjścia jako plik_1 End Sub 

Krok 4: Użyj instrukcji MsgBox, aby dodać okno komunikatu z liczbą pierwszych plików.

Kod:

 Sub Przykład_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Dla wyjścia jako plik_1 MsgBox "Wartość dla pliku_1 to:" & file_1 End Sub 

Krok 5: Użyj instrukcji Close, aby zamknąć pierwszy plik otwarty za pomocą VBA.

Kod:

 Sub Przykład_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Dla danych wyjściowych jako pliku_1 MsgBox "Wartość dla pliku_1 to:" & file_1 Zamknij plik_1 End Sub 

Krok 6: Teraz wykonaj tę samą procedurę, co w kroku 5, kroku 6, kroku 7, ale dla drugiego pliku. Obejmuje to przypisanie wartości do zmiennej file_2 za pomocą funkcji FreeFile i otwarcie jej za pomocą instrukcji Open, użycie MsgBox do wyświetlenia numeru pliku drugiego pliku i wreszcie zamknięcie drugiego pliku.

Kod:

 Sub Przykład_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Do wyjścia jako plik_1 MsgBox "Wartość dla file_1 to:" & file_1 Zamknij plik_1 file_2 = FreeFile Otwórz "D : \ Excel Content Writing \ TextFile_2.txt „Dla pliku wyjściowego jako plik_2 MsgBox” Wartość dla pliku_2 to: „& plik_2 Zamknij plik_2 Koniec podrzędny 

Krok 7: Uruchom ten kod, naciskając przycisk Uruchom lub F5.

Pierwsze okno komunikatu reprezentuje wartość pliku_1, która wydaje się być 1. Drugie okno komunikatu reprezentuje wartość pliku_2, która również wydaje się być 1. Ta zmiana istnieje, ponieważ użyliśmy instrukcji close do zamykania plików jeden po drugim. Z tego powodu podczas inicjowania nowego pliku za każdym razem, gdy stary plik i jego numer znikają z pamięci systemowej, następny plik będzie uważany za nowy plik o numerach rozpoczynających się od 1.

Rzeczy do zapamiętania

  • FreeFile zwraca unikalną liczbę całkowitą do każdego pliku, który otwieramy, odczytujemy, zamykamy za pomocą IO pliku VBA.
  • FreeFile ma dwie wartości dla argumentu RangeNumber (który jest opcjonalny). Zero zwykle przypisuje liczbę z zakresu od 1 do 255, a jeden przypisuje liczby od 256 do 511.

Polecane artykuły

To jest przewodnik po VBA FreeFile. Tutaj omawiamy, w jaki sposób funkcja FreeFile pozwala przypisać numer do pliku, który zamierzasz otworzyć, odczytać, zamknąć za pomocą Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Plik sprawdzania VBA istnieje | Szablon Excel
  2. Indeks dolny VBA poza zakresem (przykłady)
  3. Funkcja GetObject w Excel VBA
  4. Jak korzystać z formatu liczb w VBA?
  5. VBA Environ

Kategoria: