Hoe maak je een tekstbestand en schrijf je ernaar met vba?

Als u tekst wilt maken met VBA-code, moet u de CreateTextFile-methode gebruiken. Met deze methode kunt u een locatie instellen waar u deze wilt maken. Deze methode heeft een syntaxis waarin u kunt opgeven of u het bestand op de locatie wilt overschrijven en kunt opgeven of het bestand wordt gemaakt als Unicode- of ASCII-bestand.

Maak een tekstbestand met VBA

Gebruik de volgende stappen:

  1. Eerst moet u een FileSystemObject- of Folder-object gebruiken om met de methode te gebruiken.
    create-a-text-fie-using-vba
  2. Daarna moet u een ander object maken met behulp van de CreateTextFile-methode.
    create-text-file-method
  3. In deze code hebben we TRUE gebruikt om te overschrijven als er al een bestand met dezelfde naam in de map staat.
  4. Aan het einde, wanneer u deze macro uitvoert, maakt u als volgt een nieuw tekstbestand in de map.
 Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub

Syntaxis van de CreateTextFile-methode

 CreateTextFile (filename, [ overwrite, [ unicode ]])
  • bestandsnaam: Pad en naam van het bestand dat u wilt maken.
  • overschrijven: Booleaanse waarde om te definiëren of u het bestand wilt overschrijven (als het al bestaat) (optioneel).
  • unicode: boolean om te definiëren of het bestand is gemaakt als Unicode- of ASCII-bestand (optioneel).

Schrijf naar een tekstbestand met VBA

U kunt twee instructies gebruiken om gegevens naar een tekstbestand te schrijven:

  1. Schrijven: Met deze instructie kunt u gegevens naar een tekstbestand schrijven, waar u komma’s tussen waarden, aanhalingstekens rond tekenreeksen en #-tekens rond datums zult plaatsen.
    write-statement
  2. Afdrukken: Met deze verklaring kunt u gegevens naar een tekstbestand schrijven met de exacte weergave die u in het Excel-spreadsheet heeft.
    print-statement

Nu zullen we voorbeelden voor beide uitspraken bekijken en begrijpen hoe we volledige code kunnen schrijven om naar een tekstbestand te schrijven. Maar daarvoor moet u enkele terminologieën begrijpen om de code te schrijven zoals u dat wilt.

  • Voor uitvoer: U kunt deze opdracht gebruiken als u gegevens wilt schrijven of gegevens in een tekstbestand wilt wijzigen.
  • Ter invoer: met dit commando kunt u gegevens uit een tekst halen, maar u kunt geen gegevens wijzigen en aan het bestand toevoegen.
  • Toevoegen: Met deze opdracht kunt u nieuwe gegevens onderaan het tekstbestand toevoegen.
  • FreeFile: Hiermee kunt u een bestandsnummer instellen dat niet wordt gebruikt voor het tekstbestand dat u wilt gebruiken, zodat u ernaar kunt verwijzen.

Laten we nu een code schrijven om gegevens in een tekstbestand in te voeren.

  1. Eerst moet u de variabelen declareren die u in de code wilt gebruiken.
    declare-variables
  2. Daarna moet u het bereik definiëren dat u naar het tekstbestand moet schrijven. En gebruik het aantal cellen in het bereik als teller voor de lus door deze op een variabele in te stellen.
    define-the-range
  3. Vervolgens moet u het adres instellen van het tekstbestand waaraan u gegevens wilt toevoegen.
    define-the-address-of-the-text-file
  4. Van daaruit moet u de opdracht “FreeFile” declareren bij een variabele om het bestandsnummer te verkrijgen.
    freefile-command
  5. Nu moet u een creatie maken met de opdracht “Uitvoer”, omdat u gegevens aan het bestand moet toevoegen.
    output-command
  6. Ten slotte moet u de “For Next”-lus gebruiken om de bereikwaarden één voor één op te halen en deze aan het bestand toe te voegen.
    for-next-loop-to-get-values
  7. Bovendien moet u de opdracht close gebruiken om het tekstbestand te sluiten nadat de gegevens eraan zijn toegevoegd.
    close-command
  8. Wanneer u deze macro uitvoert, worden uiteindelijk gegevens uit het bereik A1:A13 toegevoegd aan het tekstbestand dat u hebt opgeslagen in het door u genoemde pad.
    run-the-macro

Opmerking: Zorg ervoor dat u het pad van het tekstbestand van de code wijzigt volgens het pad dat u in uw systeem heeft.

 Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *