VBA Napisz plik tekstowy - Zapisuj dane programu Excel do plików tekstowych za pomocą kodu VBA

Excel VBA Zapisz plik tekstowy

W VBA możemy otworzyć lub przeczytać lub napisać 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 innym jest użycie metody 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ć dane 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 kroki, 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 do pliku), Dla (Tryb), 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 wartościach 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.

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ć, do którego numeru pliku się odnosimy, zadeklaruj 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ć unikalne numery plików.

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 FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" End Sub

First, we need to mention the file number (here we have assigned the file through the “filenumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub

Now, run the code this manually or through shortcut excel key F5. It will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

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 the 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 FilesVBA FileHello.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

Więc uruchom kod za pomocą klawisza F5 lub ręcznie. Następnie skopiuje poniższe dane.

Interesujące artykuły...