VBA Napisz plik tekstowy

Excel VBA Zapisz plik tekstowy

W VBA możemy otworzyć lub przeczytać lub zapisać plik tekstowy, zapisanie pliku tekstowego oznacza dane, które mamy w arkuszu Excela i chcemy, aby były to plik tekstowy lub plik notatnika, są dwie metody do zrobienia, jedna to użycie właściwości obiektu systemu plików języka VBA, a inną metodą Otwórz i zapisz w języku VBA.

W większości firm, po sfinalizowaniu raportu, chcą przesłać raport do bazy danych. Aby przesłać do bazy danych, używają formatu „Pliki tekstowe” do aktualizacji bazy danych. Zwykle kopiujemy dane z programu Excel i wklejamy do pliku tekstowego. Powód, dla którego polegamy na plikach tekstowych, ponieważ są one bardzo łatwe w obsłudze, ponieważ są lekkie i prostsze. Korzystając z kodowania VBA możemy zautomatyzować zadanie kopiowania danych z pliku excel do pliku tekstowego. W tym artykule pokażemy, jak skopiować lub zapisać dane z pliku Excela do pliku tekstowego za pomocą kodu VBA.

Jak zapisywać dane do plików tekstowych za pomocą VBA?

Zapisywanie danych z Excela do tekstu jest skomplikowanym kodowaniem i wymaga bardzo dobrej znajomości kodowania VBA. Wykonaj poniższe czynności, aby napisać kod VBA w celu skopiowania danych z programu Excel do pliku tekstowego.

Zanim pokażę ci, jak napisać kod, wyjaśnię, jak otworzyć plik tekstowy za pomocą instrukcji open.

Składnia Open Text File

Otwórz [ścieżka pliku], dla [trybu], jako [numer pliku]

Ścieżka do pliku: ścieżka do pliku, który próbujemy otworzyć na komputerze.

Tryb: Tryb to kontrola, którą możemy mieć nad otwieraniem plików tekstowych. Możemy mieć trzy rodzaje kontroli nad plikiem tekstowym.

  • Tryb wejściowy: sugeruje kontrolę „ Tylko do odczytu ” otwierającego pliku tekstowego. Jeśli używamy „trybu wprowadzania”, nie możemy nic zrobić z plikiem. Możemy po prostu przeczytać zawartość pliku tekstowego.
  • Tryb wyjścia: Korzystając z tej opcji możemy zapisać na nim zawartość. Musimy tutaj pamiętać, że wszystkie istniejące dane zostaną nadpisane. Dlatego musimy uważać na możliwą utratę starych danych.
  • Append Mode: ten tryb jest całkowitym przeciwieństwem trybu OutPut. Korzystając z tej metody, możemy faktycznie zapisać nowe dane na końcu istniejących danych w pliku.

Numer pliku: Zlicza numer pliku tekstowego wszystkich otwartych plików tekstowych. Pozwoli to rozpoznać otwarte numery plików w liczbach całkowitych od 1 do 511. Przypisanie numeru pliku jest trudne i prowadzi do wielu nieporozumień. W tym celu możemy skorzystać z bezpłatnej funkcji Plik.

Free File zwraca unikalną liczbę otwartych plików. W ten sposób możemy przypisać unikalny numer pliku bez jakichkolwiek zduplikowanych wartości.

Możesz pobrać ten szablon pliku tekstowego zapisu VBA tutaj - szablon pliku tekstowego zapisu VBA

Przykład 1

Wykonaj poniższe czynności, aby napisać kod w celu utworzenia nowego pliku tekstowego.

Załóżmy, że masz już plik tekstowy o nazwie „Hello.txt” w pamięci komputera, a pokażemy Ci, jak zapisać w nim dane.

Krok 1: Zadeklaruj zmienną

Zadeklaruj zmienną, aby przechowywać ścieżkę pliku jako ciąg.

Kod:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Krok 2: Określ numer pliku

Aby określić numer pliku, do którego się odnosimy, należy zadeklarować jeszcze jedną zmienną jako liczbę całkowitą.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

Krok 3: Przypisz ścieżkę do pliku

Teraz dla zmiennej Path przypisz ścieżkę do pliku z nazwą pliku.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmień ścieżkę zgodnie z wymaganiami End Sub 

Krok 4: Przypisz funkcję bezpłatnego pliku

Teraz dla zmiennej Numer pliku przypisz funkcję „Free File”, aby przechowywać unikalny numer pliku.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmień ścieżkę zgodnie z wymaganiami FileNumber = FreeFile End Sub 

Krok 5: Otwórz plik tekstowy

Teraz musimy otworzyć plik tekstowy, aby z nim pracować. Jak już wyjaśniłem, do otwarcia pliku tekstowego musimy użyć instrukcji OPEN.

Krok 6: Użyj metody drukowania / zapisu

Po otwarciu pliku musimy coś w nim zapisać. Aby napisać do pliku tekstowego, musimy użyć metody „Zapisz” lub „Drukuj”.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmień ścieżkę zgodnie z wymaganiami FileNumber = FreeFile Otwórz ścieżkę do wyjścia jako FileNumber Print #FileNumber, " Witamy „Print #FileNumber”, „Print #FileNumber”, „VBA” End Sub 

Najpierw należy podać numer pliku (tutaj przypisaliśmy plik poprzez zmienną „FileNumber”), a następnie dodać treść, którą chcemy dodać do pliku tekstowego.

Krok 7: Zapisz i zamknij plik tekstowy

Po zapisaniu treści w pliku tekstowym musimy zapisać i zamknąć plik tekstowy.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmień ścieżkę zgodnie z wymaganiami FileNumber = FreeFile Otwórz ścieżkę do wyjścia jako FileNumber Print #FileNumber, " Witamy „Print #FileNumber”, „Print #FileNumber”, „VBA” Zamknij numer pliku End Sub 

Teraz uruchom kod ręcznie lub za pomocą klawisza skrótu programu Excel F5, zapisze wspomnianą zawartość we wspomnianym pliku tekstowym.

Przykład nr 2

Teraz zobaczymy, jak zapisać dane arkusza Excela do pliku tekstowego.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.