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

Innholdsfortegnelse

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" -formatet til å 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 en 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), As (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.
  • Append Mode: Denne modusen er helt motsatt av OutPut Mode. 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. Det er vanskelig å tildele filnummeret og fører til mye forvirring. For dette kan vi bruke 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.

Eksempel 1

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

Anta at du allerede har hatt en tekstfil kalt “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å for Path-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å for File Number-variabelen, tilordne funksjonen "Free File" for å lagre unike filnumre.

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 i henhold til ditt krav FileNumber = FreeFile Åpne bane for utdata som FileNumber Print #FileNumber, " Velkommen "Skriv ut #FilNummer" til "Skriv ut #FilNummer," VBA "End Sub

Først må vi nevne filnummeret (her har vi tildelt filen gjennom "filnummer" -variabelen), så må vi legge til innholdet vi vil legge til i en tekstfil.

Trinn 7: Lagre og lukk tekstfil

Når innholdet er skrevet i en tekstfil, må vi lagre og lukke tekstfilen.

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 FileNumber = FreeFile Åpne bane for utdata som FileNumber Print #FileNumber, " Velkommen "Skriv ut #FilNummer", til "Skriv ut #FilNummer," VBA "Lukk FileNumber End Sub

Kjør nå koden denne manuelt eller gjennom snarvei excel-tasten F5. Det vil skrive det nevnte innholdet i den nevnte tekstfilen.

Eksempel 2

Nå skal vi se hvordan du skriver dataene til Excel-ark til en tekstfil.

For dette eksemplet har jeg laget enkle data i Excel som nedenfor.

Trinn 1: Med fortsettelsen av det gamle eksemplet, definer to flere variabler som Heltall for å finne den siste raden og den siste kolonnen.

Kode:

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

Så kjør koden ved hjelp av F5-tasten eller manuelt. Deretter vil den kopiere dataene nedenfor.

Interessante artikler...