See õpetus näitab, kuidas VBA abil tekstifailidesse kirjutada.
Kirjutage tekstifaili
Allpool olevad koodid kasutavad FileSystemObject. Selle kasutamiseks peate määrama viite VB skripti käitusajale.
Kirjutage uude tekstifaili
Koos CreateTextFile meetod FileSystemObject saate tekstifaili luua ja seejärel sisu lisada:
123456789 | Alam FSOCreateAndWriteToTextFile ()Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "test line"FileToCreate.CoseEnd Sub |
Pange tähele, et sisu ei lisata jutumärkidele.
Kirjutage olemasolevasse tekstifaili
Olemasolevasse tekstifaili kirjutamiseks võite kasutada OpenTextFile meetod FileSystemObject koos ForWriting režiimi.
123456789 | Alam FSOWriteToTextFile ()Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "test line"FileToWrite.SulgeEnd Sub |
Pange tähele, et te ei pea tingimata FileSystemObjecti olemasolevasse tekstifaili kirjutama. Ülaltoodud näidet on selles koodis näidatud muul viisil (vt muud näidet jaotises Andmevahemik tekstifailiks):
123456789 | Sub WriteToTextFile ()Hämarda failinimi stringinaFileName = "C: \ Test \ TestFile.txt"Avage väljundi failinimi #1Trükk nr 1, "testliin"Sule #1End Sub |
Pange tähele, et käsu Kirjutamine asemel Prindi asemel lisatakse lisatud sisu jutumärkidesse. Mõlemad käsud on teie makros
12 | Kirjutage number 1, "testirida #1"Trükk nr 1, "testliin #2" |
tulemuseks on selline tekstifail:
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Lisa tekstifaili
Kui muudate ülaltoodud koodi režiimi ForAppending, saab tekstifaili lõppu lisada rea:
1 | Määra FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending) |
WriteLine meetod
See meetod lisab sisestatud stringi eraldi reana olemasolevale sisule.
Kirjutamismeetod
Sisestusstring lisatakse olemasoleva sisuga samale reale.
Kas olete väsinud VBA koodinäidete otsimisest? Proovige AutoMacrot!
WriteBlankLines
See meetod võtab parameetrina tekstifaili kirjutatavate tühjade ridade arvu.
See allolev kood illustreerib erinevust erinevate kirjutamismeetodite vahel:
12345678910111213 | Sub WriteMethods ()Dim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testliin #1"FileToWrite.Write "testliin #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testliin #3"FileToWrite.WriteLine "testliin #4"FileToWrite.SulgeEnd Sub |
Ja tulemus:
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Andmevahemik tekstifailiks
Kui soovite töölehelt andmevahemiku tekstifaili väljastada, saate kasutada järgmist koodi.
12345678910111213141516171819 | AlamväljundToTextFile ()Hämarda failinime stringina, LineText stringinaDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'siin saate määrata tekstifaili nime, mida soovite luuaAvage väljundi failinimi #1Määra MyRange = Vahemik ("andmed") 'eeldab, et teie töölehel on andmevahemik nimega "andmed"Sest i = 1 MyRange.Rows.CountJ = 1 jaoks MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'loodud tekstifailil on koma eraldajaJärgmine jPrindi nr 1, LineText ', kasutades printimise asemel käsku Kirjutamine, toob teie andmed välja tekstiteksti jutumärkidesEdasi iSule #1End Sub |
Massiiv tekstifaili
Samuti saate salvestada oma andmemassiivi tekstifaili järgmiselt.
12345678910111213141516 | Sub SaveArrayToTextFile ()Dim MyArray kui variantDim FSO uue failisüsteemi objektinaMäära FSO = CreateObject ("Scripting.FileSystemObject")MyArray = massiiv (massiiv ("00", "01"), massiiv ("10", "11"), massiiv ("20", "21"))Määra FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")N = 0 jaoks UBoundile (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)EdasiFileToCreate.CoseEnd Sub |