VBA Tekstbestand schrijven - Schrijf Excel-gegevens naar tekstbestanden met VBA-code

Excel VBA Tekstbestand schrijven

In VBA kunnen we een tekstbestand openen of lezen of schrijven, om een ​​tekstbestand te schrijven betekent de gegevens die we in een Excel-blad hebben en we willen het naar een tekstbestand of een kladblokbestand, er zijn twee methoden om te doen, een is door met behulp van de objecteigenschap Bestandssysteem van VBA en een andere is door de methode Openen en schrijven in VBA te gebruiken.

In de meeste bedrijven proberen ze het rapport te uploaden naar de database zodra het rapport is afgerond. Om te uploaden naar de database, gebruiken ze het "Text Files" -formaat om de database bij te werken. Meestal kopiëren we de gegevens uit Excel en plakken we deze in een tekstbestand. De reden waarom we op tekstbestanden vertrouwen, is omdat deze erg gemakkelijk zijn om mee te werken vanwege hun lichtgewicht en eenvoudigere manieren. Door VBA-codering te gebruiken, kunnen we de taak van het kopiëren van gegevens van Excel-bestand naar tekstbestand automatiseren. In dit artikel laten we u zien hoe u gegevens van een Excel-bestand naar een tekstbestand kunt kopiëren of schrijven met VBA-code.

Hoe gegevens naar tekstbestanden te schrijven met VBA?

Het schrijven van gegevens van Excel naar tekst is een complexe codering en vereist een zeer goede kennis van VBA-codering. Volg de onderstaande stappen om de VBA-code te schrijven om gegevens van Excel naar een tekstbestand te kopiëren.

Voordat ik je de manier laat zien om de code te schrijven, wil ik je uitleggen hoe je het tekstbestand opent met een open statement.

Syntaxis van open tekstbestand

Open (File Path), For (Mode), As (File Number)

Bestandspad: het pad van het bestand dat we proberen te openen op de computer.

Mode: Mode is de controle die we kunnen hebben over het openen van tekstbestanden. We kunnen drie soorten controle hebben over het tekstbestand.

  • Invoermodus: dit suggereert “Alleen -lezen ” controle van het openingstekstbestand. Als we "Input Mode" gebruiken, kunnen we niets met het bestand doen. We kunnen gewoon de inhoud van het tekstbestand lezen.
  • Uitvoermodus: met deze optie kunnen we de inhoud erop schrijven. Het punt dat we hier moeten onthouden, is dat alle bestaande gegevens worden overschreven. We moeten dus op onze hoede zijn voor het mogelijke verlies van oude gegevens.
  • Append Mode: Deze mode is volledig het tegenovergestelde van de OutPut Mode. Met behulp van deze methode kunnen we de nieuwe gegevens daadwerkelijk aan het einde van de bestaande gegevens in het bestand schrijven.

Bestandsnummer: dit telt het tekstbestandnummer van alle geopende tekstbestanden. Dit zal de geopende bestandsnummers herkennen in gehele getallen van 1 tot 511. Het toekennen van het bestandsnummer is lastig en leidt tot veel verwarring. Hiervoor kunnen we de gratis File-functie gebruiken.

Free File retourneert het unieke nummer voor de geopende bestanden. Op deze manier kunnen we het unieke bestandsnummer toewijzen zonder enige vorm van dubbele waarden.

Voorbeeld 1

Volg de onderstaande stappen om de code te schrijven om een ​​nieuw tekstbestand te maken.

Stel dat u al een tekstbestand met de naam "Hello.txt" in uw computeropslag heeft gehad, en we zullen u laten zien hoe u de gegevens erin kunt schrijven.

Stap 1: Variabele declareren

Declareer de variabele om het bestandspad vast te houden als String.

Code:

Sub TextFile_Example1 () Dim Path As String End Sub
Stap 2: Bepaal het bestandsnummer

Om te bepalen naar welk bestandsnummer we verwijzen, declareert u nog een variabele als Integer.

Code:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub
Stap 3: wijs een bestandspad toe

Wijs nu voor de Path-variabele het bestandspad toe met een bestandsnaam.

Code:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Wijzig het pad volgens uw vereisten End Sub
Stap 4: Wijs de functie voor gratis bestanden toe

Wijs nu voor de File Number-variabele de functie "Free File" toe om unieke bestandsnummers op te slaan.

Code:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Wijzig het pad volgens uw vereisten FileNumber = FreeFile End Sub
Stap 5: Open tekstbestand

Nu moeten we het tekstbestand openen om ermee te werken. Zoals ik heb uitgelegd, moeten we de OPEN-instructie gebruiken om het tekstbestand te openen.


Stap 6: Gebruik de methode Afdrukken / schrijven

Zodra het bestand is geopend, moeten we er iets in schrijven. Om in het tekstbestand te schrijven, moeten we de "Schrijven" of "Afdrukken" -methode gebruiken.

Code:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.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" 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 FilesVBA FileHello.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 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

Voer de code dus uit met behulp van de F5-toets of handmatig. Vervolgens worden de onderstaande gegevens gekopieerd.

Interessante artikelen...