VBA Tekstbestand schrijven

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 naar de database te uploaden, gebruiken ze het formaat "Tekstbestanden" 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 Excel-bestand naar 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 uitleggen hoe je het tekstbestand opent met een open statement.

Syntaxis van open tekstbestand

Open [File Path], voor [Mode], als [File Number]

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

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 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 herkent de geopende bestandsnummers 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.

U kunt deze VBA-sjabloon voor tekstbestand schrijven hier downloaden - VBA-sjabloon voor tekstbestand schrijven

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 gratis bestandsfunctie toe

Wijs nu aan de File Number-variabele de functie "Free File" toe om een ​​uniek bestandsnummer 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 afdruk- / schrijfmethode

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 Files \ VBA File \ Hello.txt" 'Wijzig het pad volgens uw vereisten FileNumber = FreeFile Open pad voor uitvoer als FileNumber Print #FileNumber, " Welkom "Print #FileNumber" bij "Print #FileNumber," VBA "End Sub 

Eerst moeten we het bestandsnummer vermelden (hier hebben we het bestand toegewezen via de “FileNumber” -variabele), daarna moeten we de inhoud toevoegen die we aan een tekstbestand willen toevoegen.

Stap 7: tekstbestand opslaan en sluiten

Zodra de inhoud in een tekstbestand is geschreven, moeten we het tekstbestand opslaan en sluiten.

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 Open pad voor uitvoer als FileNumber Print #FileNumber, " Welkom "Print #FileNumber," bij "Print #FileNumber," VBA "Close FileNumber End Sub 

Voer de code nu handmatig uit of via de sneltoets Excel-toets F5, het zal de genoemde inhoud in het genoemde tekstbestand schrijven.

Voorbeeld # 2

Nu zullen we zien hoe we de gegevens van Excel-blad naar een tekstbestand kunnen schrijven.

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.