VBA - Skriv til tekstfil

Indholdsfortegnelse

Denne vejledning viser, hvordan du skriver til tekstfiler ved hjælp af VBA.

Skriv til en tekstfil

Nedenstående koder bruger FileSystemObject. For at kunne bruge det skal du angive en reference til VB-scriptets kørebibliotek.

Skriv til ny tekstfil

Med CreateTextFile metode til FileSystemObject du kan oprette og derefter tilføje indhold til en tekstfil:

123456789 Sub FSOCreateAndWriteToTextFile ()Dim FSO som nyt filsystemsystemIndstil FSO = CreateObject ("Scripting.FileSystemObject")Indstil FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "testlinje"FileToCreate.CloseAfslut Sub

Bemærk, at indholdet ikke vil være omsluttet af citater.

Skriv til eksisterende tekstfil

For at skrive til en eksisterende tekstfil kan du bruge OpenTextFile metode til FileSystemObject med For at skrive mode.

123456789 Sub FSOWriteToTextFile ()Dim FSO som nyt filsystemsystemIndstil FSO = CreateObject ("Scripting.FileSystemObject")Indstil FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testlinje"FileToWrite.LukAfslut Sub

Bemærk, at du ikke nødvendigvis har brug for FileSystemObject for at skrive til en eksisterende tekstfil. Ovenstående eksempel vises på en anden måde i denne kode herunder (se andet eksempel i afsnittet Data Range to Text File):

123456789 Sub WriteToTextFile ()Dim filnavn som strengFilnavn = "C: \ Test \ TestFile.txt"Åbn filnavn til output som #1Udskriv nr. 1, "testlinje"Luk #1Afslut Sub

Bemærk, at brug af kommandoen Skriv i stedet for Udskriv vil resultere i, at det tilføjede indhold er omsluttet af anførselstegn. Har begge kommandoer i din makro

12 Skriv #1, "testlinje #1"Udskriv #1, "testlinje #2"

vil resultere i en tekstfil som denne:

VBA -programmering | Kodegenerator virker for dig!

Tilføj til tekstfil

Ved at ændre tilstanden i ovenstående kode til ForAppending, kan der tilføjes en linje til slutningen af ​​tekstfilen:

1 Indstil FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)

WriteLine -metode

Denne metode tilføjer inputstrengen som en separat linje til det eksisterende indhold.

Skriv metode

Inputstrengen tilføjes på samme linje som det eksisterende indhold.

Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!

WriteBlankLines

Denne metode tager antallet af tomme linjer, der skal skrives til tekstfilen som en parameter.

Denne kode nedenfor illustrerer forskellen mellem de forskellige skrivemetoder:

12345678910111213 Sub WriteMethods ()Dim FSO som nyt filsystemsystemIndstil FSO = CreateObject ("Scripting.FileSystemObject")Indstil FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testlinje #1"FileToWrite.Write "testlinje #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testlinje #3"FileToWrite.WriteLine "testlinje #4"FileToWrite.LukAfslut Sub

Og resultatet:

VBA -programmering | Kodegenerator virker for dig!

Dataområde til tekstfil

Hvis du vil sende et dataområde fra dit regneark til en tekstfil, kan du bruge denne kode:

12345678910111213141516171819 Sub OutputToTextFile ()Dim filnavn som streng, LineText som strengDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'du kan her angive tekstfilnavnet, du vil opretteÅbn filnavn til output som #1Indstil MyRange = Range ("data") 'det forudsætter, at du har et dataområde med navnet "data" på dit regnearkFor i = 1 Til MyRange.Rows.CountFor j = 1 Til MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'tekstfilen, der opretter, har en kommaseparatorNæste jUdskriv #1, LineText 'ved hjælp af kommandoen Skriv i stedet for Udskriv vil resultere i at have dine data i anførselstegn i outputtekstfilenNæste iLuk #1Afslut Sub

Array til tekstfil

Du kan også gemme dit array af data i en tekstfil som denne:

12345678910111213141516 Sub SaveArrayToTextFile ()Dim MyArray som variantDim FSO som nyt filsystemsystemIndstil FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("20", "21"))Indstil FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")For n = 0 Til UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)NæsteFileToCreate.CloseAfslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave