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 TemplateEksempel 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.