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

Indholdsfortegnelse

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 formatet "Tekstfiler" 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 en 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), As (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 en masse 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.

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 computerlager, 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 variabel til som heltal.

Kode:

Sub TextFile_Example1 () Dim sti som streng Dim FileNumber som Integer End Sub
Trin 3: Tildel filsti

Nu til sti-variablen skal du tildele 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, tildel funktionen "Free File" til at gemme unikke filnumre.

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-sætningen 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 efter dine krav FileNumber = FreeFile Åbn sti til output som FileNumber Print #FileNumber, " Velkommen "Print #FileNumber" til "Print #FileNumber," VBA "End Sub

Først skal vi nævne filnummeret (her har vi tildelt filen gennem variablen "filnummer"), så skal vi tilføje det indhold, vi vil føje til en tekstfil.

Trin 7: Gem og luk tekstfil

Når indholdet er skrevet i en tekstfil, skal vi gemme og lukke tekstfilen.

Kode:

Sub TextFile_Example1 () Dim sti som streng Dim FileNumber Som Integer Path = "D: Excel Files VBA File Hello.txt" 'Skift stien efter dine krav FileNumber = FreeFile Åbn sti til output som FileNumber Print #FileNumber, " Velkommen "Print #FileNumber" til "Print #FileNumber," VBA "Luk FileNumber End Sub

Kør nu koden dette manuelt eller gennem genvejstasten F5. Det skriver det nævnte indhold i den nævnte tekstfil.

Eksempel 2

Nu vil vi se, hvordan man skriver dataene i excel-ark til en tekstfil.

Til dette eksempel har jeg oprettet enkle data i excel som nedenfor.

Trin 1: Med fortsættelsen af ​​det gamle eksempel skal du definere to flere variabler som Heltal for at finde den sidste række og sidste kolonne.

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å kør koden ved hjælp af F5-tasten eller manuelt. Derefter kopieres dataene nedenfor.

Interessante artikler...