VBA - Zapišite v besedilno datoteko

Ta vadnica bo pokazala, kako pisati v besedilne datoteke z uporabo VBA.

Zapišite v besedilno datoteko

Spodnje kode uporabljajo FileSystemObject. Če ga želite uporabiti, morate nastaviti sklic na knjižnico časa izvajanja skripta VB.

Zapišite v novo besedilno datoteko

Z CreateTextFile metoda FileSystemObject lahko ustvarite in nato dodate vsebino v besedilno datoteko:

123456789 Pod FSOCreateAndWriteToTextFile ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")Nastavi FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "testna vrstica"FileToCreate.CloseEnd Sub

Upoštevajte, da vsebina ne bo omejena z narekovaji.

Zapišite v obstoječo besedilno datoteko

Za pisanje v obstoječo besedilno datoteko lahko uporabite OpenTextFile metoda FileSystemObject z Za pisanje način.

123456789 Sub FSOWriteToTextFile ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")Nastavi FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testna vrstica"FileToWrite.CloseEnd Sub

Upoštevajte, da za pisanje v obstoječo besedilno datoteko ne potrebujete nujno FileSystemObject. Zgornji primer je prikazan spodaj v tej kodi (glej drug primer v razdelku Razpon podatkov do besedilne datoteke):

123456789 Sub WriteToTextFile ()Zatemni ime datoteke kot nizFileName = "C: \ Test \ TestFile.txt"Odprite ime datoteke za izhod kot #1Natisni #1, "testna vrstica"Zapri #1End Sub

Upoštevajte, da bo uporaba ukaza Write namesto Print povzročila dodano vsebino, omejeno z narekovaji. V ukaznem listu imate oba ukaza

12 Napišite #1, "testna vrstica #1"Natisni #1, "preskusna vrstica #2"

bo povzročilo besedilno datoteko, kot je ta:

Programiranje VBA | Generator kod deluje za vas!

Dodaj v besedilno datoteko

Če način v zgornji kodi spremenite v ForAppending, lahko na konec besedilne datoteke dodate vrstico:

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

Metoda WriteLine

Ta metoda doda vhodni niz kot ločeno vrstico obstoječi vsebini.

Metoda pisanja

Vhodni niz je dodan v isto vrstico kot obstoječa vsebina.

Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!

WriteBlankLines

Ta metoda vzame število praznih vrstic, ki jih je treba zapisati v besedilno datoteko kot parameter.

Ta spodnja koda ponazarja razliko med različnimi načini pisanja:

12345678910111213 Metode podpisanega zapisa ()Zatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")Nastavi FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "preskusna vrstica #1"FileToWrite.Write "preskusna vrstica #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testna vrstica #3"FileToWrite.WriteLine "preskusna vrstica #4"FileToWrite.CloseEnd Sub

In rezultat:

Programiranje VBA | Generator kod deluje za vas!

Obseg podatkov do besedilne datoteke

Če želite izpisati obseg podatkov iz svojega delovnega lista v besedilno datoteko, lahko uporabite to kodo:

12345678910111213141516171819 Sub OutputToTextFile ()Zatemni ime datoteke kot niz, besedilo vrstice kot nizZatemni MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'tukaj lahko določite ime besedilne datoteke, ki jo želite ustvaritiOdprite ime datoteke za izhod kot #1Set MyRange = Range ("data") 'predpostavlja, da imate na svojem delovnem listu obseg podatkov z imenom "data"Za i = 1 Za MyRange.Rows.CountZa j = 1 Za MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'bo ustvarjena besedilna datoteka imela vejicoNaprej jNatisni #1, LineText 'z ukazom za pisanje namesto za tiskanje bo povzročil, da bodo vaši podatki v narekovajih v izhodni besedilni datotekiNaprej iZapri #1End Sub

Niz v besedilno datoteko

Niz podatkov lahko shranite tudi v besedilno datoteko, kot je ta:

12345678910111213141516 Sub SaveArrayToTextFile ()Zatemni MyArray kot variantoZatemni FSO kot nov datotečni sistemObjektNastavite FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("20", "21"))Nastavi FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Za n = 0 Za UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)NaslednjiFileToCreate.CloseEnd Sub

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave