VBA Skriv textfil

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 anteckningsblockfil, 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 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 dig 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], för [Mode], som [File Number]

Filväg: Sökvägen till filen 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 detta alternativ 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.
  • Append Mode: Detta läge är helt motsatt av OutPut Mode. 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 känner 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å det här sättet kan vi tilldela det unika filnumret utan några dubbletter.

Du kan ladda ner den här VBA-skrivmallen för texttext här - VBA-mall för skrivtextfil

Exempel nr 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 din datorlagring 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 enda variabel som heltal.

Koda:

 Sub TextFile_Example1 () Dim sökväg som sträng Dim FileNumber 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

Tilldela nu funktionen "Gratis fil" för variabeln File Number för att lagra unikt 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 heltal sökvä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 "FileNumber"), 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 heltal sökvä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 genom snabbknappen F5, den kommer att skriva 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.

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.