VBA Skriv tekstfil | Skriv Excel-data til tekstfiler ved hjælp af VBA-kode

Excel VBA Skriv tekstfil

I VBA kan vi åbne eller læse eller skrive en tekstfil, at skrive en tekstfil betyder de data, vi har i et excel-ark, og vi vil have det til en tekstfil eller en notesblokfil, der er to metoder at gøre, den ene er ved brug af File System-objektegenskaben for VBA og en anden er ved hjælp af metoden Åbn og skriv i VBA.

I de fleste virksomheder, når rapporten er færdigbehandlet, ser de ud til at uploade rapporten til databasen. For at uploade til databasen bruger de "Tekstfiler" -format til at opdatere databasen. Vi kopierer normalt dataene fra excel og indsætter i en tekstfil. Årsagen til, at vi stoler på tekstfiler, fordi de er meget nemme at arbejde med på grund af deres lette og enklere måder. Ved at bruge VBA-kodning kan vi automatisere opgaven med at kopiere data fra excel-fil til tekstfil. I denne artikel viser vi dig, hvordan du kopierer eller skriver data fra excel-fil til tekstfil ved hjælp af VBA-kode.

Hvordan skriver man data til tekstfiler ved hjælp af VBA?

Skrivning af data fra excel til tekst er kompleks kodning og kræver meget god viden om VBA-kodning. Følg nedenstående trin for at skrive VBA-koden for at kopiere data fra excel til en tekstfil.

Før jeg viser dig, hvordan du skriver koden, skal jeg forklare, hvordan du åbner tekstfilen ved hjælp af en åben erklæring.

Syntaks for åben tekstfil

Åbn [File Path], for [Mode], som [File Number]

Filsti: Stien til den fil, vi prøver at åbne på computeren.

Mode: Mode er den kontrol, vi kan have over åbning af tekstfiler. Vi kan have tre typer kontrol over tekstfilen.

  • Input Mode: Dette antyder " skrivebeskyttet " kontrol af den åbne tekstfil. Hvis vi bruger "Input Mode", kan vi ikke gøre noget med filen. Vi kan bare læse indholdet af tekstfilen.
  • Output Mode: Ved hjælp af denne mulighed kan vi skrive indholdet på den. Det punkt, vi skal huske her, er, at alle eksisterende data overskrives. Så vi skal være forsigtige med det mulige tab af gamle data.
  • Tilføj tilstand: Denne tilstand er helt modsat af OutPut-tilstand. Ved hjælp af denne metode kan vi faktisk skrive de nye data i slutningen af ​​de eksisterende data i filen.

Filnummer: Dette tæller tekstfilnummeret for alle de åbnede tekstfiler. Dette genkender de åbnede filnumre i heltalsværdier fra 1 til 511. Det er svært at tildele filnummeret og fører til meget forvirring. Til dette kan vi bruge den gratis filfunktion.

Gratis fil returnerer det unikke nummer for de åbnede filer. På denne måde kan vi tildele det unikke filnummer uden nogen form for duplikatværdier.

Du kan downloade denne VBA Write Text File Template her - VBA Write Text File Template

Eksempel nr. 1

Følg nedenstående trin for at skrive koden for at oprette en ny tekstfil.

Antag, at du allerede har haft en tekstfil med navnet “Hello.txt” i din computerlagring, og vi viser dig, hvordan du skriver dataene i den.

Trin 1: Erklær variabel

Erklær variablen for at holde filstien som streng.

Kode:

 UndertekstFil_eksempel1 () Dim sti som streng-ende-sub 

Trin 2: Bestem filnummer

For at bestemme hvilket filnummer vi henviser til, erklæres en yderligere variabel som heltal.

Kode:

 Sub TextFile_Example1 () Dim sti som streng Dim FileNumber som Integer End Sub 

Trin 3: Tildel filsti

Nu til sti-variablen tildeles filstien med et filnavn.

Kode:

 Sub TextFile_Example1 () Dim sti som streng Dim FileNumber Som Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Skift stien efter dit krav Afslut sub 

Trin 4: Tildel gratis filfunktion

Nu til File Number-variablen tildeles funktionen "Free File" til at gemme unikt filnummer.

Kode:

 Sub TextFile_Example1 () Dim sti som streng Dim FileNumber Som Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Skift stien i henhold til dit krav FileNumber = FreeFile End Sub 

Trin 5: Åbn tekstfil

Nu skal vi åbne tekstfilen for at arbejde med den. Som jeg har forklaret, er vi nødt til at bruge OPEN-erklæringen til at åbne tekstfilen.

Trin 6: Brug udskrivnings- / skrivemetoden

Når filen er åbnet, skal vi skrive noget i den. For at skrive i tekstfilen skal vi bruge metoden “Skriv” eller “Udskriv”.

Kode:

 Sub TextFile_Example1 () Dim sti som streng Dim FileNumber Som Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Skift stien i henhold til dit krav FileNumber = FreeFile Åbn sti til output som FileNumber Print #FileNumber, " Velkommen "Print #FileNumber" til "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 Files\VBA File\Hello.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 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.