VBA Skriv textfil - Skriv Excel-data till textfiler med VBA-kod

Innehållsförteckning

Excel VBA Skriv textfil

I VBA kan vi öppna eller läsa eller skriva en textfil, att skriva en textfil betyder de data vi har i ett excel-ark och vi vill ha det till en textfil eller en anteckningsfil, det finns två metoder att göra, en är av använder filsystemets objektegenskap för VBA och en annan är genom att använda metoden Öppna och skriva i VBA.

I de flesta företagsföretag, när rapporten är klar, vill de ladda upp rapporten till databasen. För att ladda upp till databasen använder de formatet "Textfiler" för att uppdatera databasen. Vi kopierar vanligtvis data från Excel och klistrar in i en textfil. Anledningen till att vi förlitar oss på textfiler eftersom de är mycket lätta att arbeta med på grund av deras lätta och enklare sätt. Genom att använda VBA-kodning kan vi automatisera uppgiften att kopiera data från Excel-fil till textfil. I den här artikeln visar vi dig hur du kopierar eller skriver data från en excel-fil till textfil med VBA-kod.

Hur skriver jag data till textfiler med VBA?

Att skriva data från Excel till text är komplex kodning och kräver mycket god kunskap om VBA-kodning. Följ stegen nedan för att skriva VBA-koden för att kopiera data från Excel till en textfil.

Innan jag visar hur du skriver koden, låt mig förklara hur du öppnar textfilen med ett öppet uttalande.

Syntax för öppen textfil

Öppna (File Path), For (Mode), As (File Number)

Filväg: Sökvägen till filen som vi försöker öppna på datorn.

Läge: Läget är den kontroll vi kan ha över att öppna textfiler. Vi kan ha tre typer av kontroll över textfilen.

  • Inmatningsläge: Detta föreslår ” skrivskyddad ” kontroll av den inledande textfilen. Om vi ​​använder "Inmatningsläge" kan vi inte göra något med filen. Vi kan bara läsa innehållet i textfilen.
  • Utmatningsläge: Med det här alternativet kan vi skriva innehållet på det. Poängen vi måste komma ihåg här är att alla befintliga data kommer att skrivas över. Så vi måste vara försiktiga med eventuell förlust av gamla data.
  • Lägg till läge: Detta läge är helt motsatt av OutPut-läget. Med den här metoden kan vi faktiskt skriva de nya uppgifterna i slutet av befintliga data i filen.

Filnummer: Detta kommer att räkna textfilnumret för alla öppnade textfiler. Detta kommer att känna igen de öppnade filnumren i heltal från 1 till 511. Att tilldela filnumret är det knepiga och leder till mycket förvirring. För detta kan vi använda den kostnadsfria filfunktionen.

Gratis fil returnerar det unika numret för de öppnade filerna. På detta sätt kan vi tilldela det unika filnumret utan några dubbletter.

Exempel 1

Följ stegen nedan för att skriva koden för att skapa en ny textfil.

Antag att du redan har haft en textfil med namnet “Hello.txt” i datorns lagring, så visar vi dig hur du skriver data i den.

Steg 1: Förklara variabel

Förklara variabeln för att hålla filsökvägen som sträng.

Koda:

Sub TextFile_Example1 () Dim sökväg som strängens slut sub
Steg 2: Bestäm filnummer

För att bestämma vilket filnummer vi hänvisar till, förklara en ytterligare variabel som heltal.

Koda:

Sub TextFile_Example1 () Dim sökväg som sträng Dim filnummer som heltal End Sub
Steg 3: Tilldela filsökväg

Tilldela nu filvägen till filnamnet för sökvägsvariabeln.

Koda:

Sub TextFile_Example1 () Dim sökväg som sträng Dim filnummer som helhetsväg = "D: Excel-filer VBA-fil Hello.txt" 'Ändra sökvägen enligt ditt krav Avsluta sub
Steg 4: Tilldela gratis filfunktion

Nu för variabeln File Number, tilldela funktionen "Free File" för att lagra unika filnummer.

Koda:

Sub TextFile_Example1 () Dim sökväg som sträng Dim filnummer som helhetsväg = "D: Excel-filer VBA-fil Hello.txt" 'Ändra sökvägen enligt ditt krav FileNumber = FreeFile End Sub
Steg 5: Öppna textfil

Nu måste vi öppna textfilen för att arbeta med den. Som jag har förklarat måste vi använda OPEN-uttalandet för att öppna textfilen.


Steg 6: Använd utskrifts- / skrivmetoden

När filen har öppnats måste vi skriva något i den. För att skriva i textfilen måste vi använda antingen metoden “Skriv” eller “Skriv ut”.

Koda:

Sub TextFile_Example1 () Dim sökväg som sträng Dim FileNumber som helhetsväg = "D: Excel Files VBA File Hello.txt" 'Ändra sökvägen enligt dina krav FileNumber = FreeFile Öppna sökväg för utdata som FileNumber Print #FileNumber, " Välkommen "Skriv ut #FilNummer" till "Skriv ut #FilNummer," VBA "Slutunder

Först måste vi nämna filnumret (här har vi tilldelat filen genom variabeln "filnummer"), sedan måste vi lägga till innehållet vi vill lägga till i en textfil.

Steg 7: Spara och stäng textfil

När innehållet är skrivet i en textfil måste vi spara och stänga textfilen.

Koda:

Sub TextFile_Example1 () Dim sökväg som sträng Dim FileNumber som helhetsväg = "D: Excel Files VBA File Hello.txt" 'Ändra sökvägen enligt dina krav FileNumber = FreeFile Öppna sökväg för utdata som FileNumber Print #FileNumber, " Välkommen "Skriv ut #Filnummer" till "Skriv ut #Filnummer," VBA "Stäng FileNumber End Sub

Kör nu koden den här manuellt eller via snabbvalsknappen F5. Det skriver det nämnda innehållet i den nämnda textfilen.

Exempel 2

Nu kommer vi att se hur man skriver data för Excel-ark till en textfil.

För det här exemplet har jag skapat enkla data i Excel som nedan.

Steg 1: Med fortsättningen av det gamla exemplet definierar du ytterligare två variabler som heltal för att hitta den sista raden och den sista kolumnen.

Koda:

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 med F5-tangenten eller manuellt. Sedan kommer den att kopiera data nedan.

Intressanta artiklar...