VBA Skriv tekstfil | Skriv Excel-data til tekstfiler ved hjelp av VBA-kode

Excel VBA skrive tekstfil

I VBA kan vi åpne eller lese eller skrive en tekstfil, å skrive en tekstfil betyr dataene vi har i et excel-ark, og vi vil ha det til en tekstfil eller en notisblokkfil, det er to metoder å gjøre, den ene er av å bruke File System-objektegenskapen til VBA og en annen er ved å bruke metoden Åpne og skrive i VBA.

I de fleste bedriftsselskaper, når rapporten er ferdigbehandlet, ser de ut til å laste opp rapporten til databasen. For å laste opp til databasen bruker de "Tekstfiler" -format for å oppdatere databasen. Vi kopierer vanligvis dataene fra excel og limer inn i en tekstfil. Grunnen til at vi stoler på tekstfiler fordi de er veldig enkle å jobbe med på grunn av deres lette og enklere måter. Ved å bruke VBA-koding kan vi automatisere oppgaven med å kopiere data fra Excel-fil til tekstfil. I denne artikkelen vil vi vise deg hvordan du kopierer eller skriver data fra Excel-fil til tekstfil ved hjelp av VBA-kode.

Hvordan skriver jeg data til tekstfiler ved hjelp av VBA?

Å skrive data fra excel til tekst er kompleks koding og krever veldig god kunnskap om VBA-koding. Følg trinnene nedenfor for å skrive VBA-koden for å kopiere data fra excel til en tekstfil.

Før jeg viser deg hvordan du skriver koden, la meg forklare hvordan du åpner tekstfilen ved å bruke en åpen uttalelse.

Syntaks for åpen tekstfil

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

Filbane: Banen til filen vi prøver å åpne på datamaskinen.

Mode: Mode er kontrollen vi kan ha over å åpne tekstfiler. Vi kan ha tre typer kontroll over tekstfilen.

  • Inndatamodus: Dette antyder " skrivebeskyttet " kontroll av den innledende tekstfilen. Hvis vi bruker "Inndatamodus", kan vi ikke gjøre noe med filen. Vi kan bare lese innholdet i tekstfilen.
  • Output Mode: Ved å bruke dette alternativet kan vi skrive innholdet på det. Poenget vi må huske her er at alle eksisterende data blir overskrevet. Så vi må være forsiktige med mulig tap av gamle data.
  • Tilleggsmodus: Denne modusen er helt motsatt av OutPut-modus. Ved hjelp av denne metoden kan vi faktisk skrive de nye dataene på slutten av eksisterende data i filen.

Filnummer: Dette teller tekstfilnummeret til alle de åpnede tekstfilene. Dette vil gjenkjenne de åpnede filnumrene i heltall fra 1 til 511. Å tilordne filnummeret er vanskelig og fører til mye forvirring. For dette kan vi bruke den gratis filfunksjonen.

Gratis fil returnerer det unike nummeret for de åpnede filene. På denne måten kan vi tilordne det unike filnummeret uten noen form for duplikatverdier.

Du kan laste ned denne VBA Write Text File Mal her - VBA Write Text File Mal

Eksempel 1

Følg trinnene nedenfor for å skrive koden for å opprette en ny tekstfil.

Anta at du allerede har hatt en tekstfil med navnet "Hello.txt" i datamaskinlagringen din, og vi viser deg hvordan du skriver dataene i den.

Trinn 1: Erklær variabel

Erklær variabelen for å holde filbanen som streng.

Kode:

 UndertekstFil_eksempel1 () Dim bane som strengens sluttub 

Trinn 2: Bestem filnummer

For å bestemme hvilket filnummer vi refererer til, erklære en variabel til som heltall.

Kode:

 UndertekstFil_eksempel1 () Dim sti som streng Dim filnummer som heltall 

Trinn 3: Tilordne filsti

Nå til sti-variabelen tilordne filbanen med et filnavn.

Kode:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Endre banen i henhold til ditt krav Slutt Sub 

Trinn 4: Tilordne gratis filfunksjon

Nå til Filnummer-variabelen tilordne funksjonen "Gratis fil" for å lagre unikt filnummer.

Kode:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Endre banen i henhold til dine krav FileNumber = FreeFile End Sub 

Trinn 5: Åpne tekstfil

Nå må vi åpne tekstfilen for å jobbe med den. Som jeg har forklart, må vi bruke OPEN-setningen for å åpne tekstfilen.

Trinn 6: Bruk utskrifts- / skrivemetoden

Når filen er åpnet, må vi skrive noe i den. For å skrive i tekstfilen må vi bruke metoden “Skriv” eller “Skriv ut”.

Kode:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Endre banen etter dine krav FileNumber = FreeFile Åpne bane for utdata som FileNumber Print #FileNumber, " Velkommen "Skriv ut #FilNummer" til "Skriv ut #FilNummer," 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.