VBA - Zapisivanje u tekstualnu datoteku

Ovaj će vodič pokazati kako pisati u tekstualne datoteke koristeći VBA.

Zapišite u tekstualnu datoteku

Kodovi u nastavku koriste FileSystemObject. Da biste ga mogli koristiti, morat ćete postaviti referencu na biblioteku vremena izvođenja VB skripte.

Zapišite u novu tekstualnu datoteku

S CreateTextFile metoda FileSystemObject možete stvoriti, a zatim dodati sadržaj u tekstualnu datoteku:

123456789 Pod FSOCreateAndWriteToTextFile ()Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")Postavi FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "testna linija"FileToCreate.CloseKraj podm

Napominjemo da sadržaj neće biti zatvoren navodnicima.

Zapišite u postojeću tekstualnu datoteku

Za pisanje u postojeću tekstualnu datoteku možete koristiti OpenTextFile metoda FileSystemObject s ForWriting načinu rada.

123456789 Pod FSOWriteToTextFile ()Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")Postavi FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testna linija"FileToWrite.CloseKraj podm

Imajte na umu da vam FileSystemObject ne mora nužno pisati u postojeću tekstualnu datoteku. Gornji primjer prikazan je na drugi način u ovom kodu ispod (pogledajte drugi primjer u odjeljku Područje podataka do tekstualne datoteke):

123456789 Sub WriteToTextFile ()Dim FileName As StringFileName = "C: \ Test \ TestFile.txt"Otvorite FileName za izlaz kao #1Ispis #1, "testna linija"Zatvori #1Kraj podm

Imajte na umu da će upotreba naredbe Zapisivanje umjesto Ispisa rezultirati time da će dodani sadržaj biti zatvoren navodnicima. Obje makronaredbe sadrže obje naredbe

12 Napišite #1, "testni redak #1"Ispis #1, "testna linija #2"

rezultirat će tekstualnom datotekom poput ove:

VBA programiranje | Generator koda radi za vas!

Dodavanje u tekstualnu datoteku

Promjenom načina u gornjem kodu u ForAppending, na kraj tekstualne datoteke može se dodati redak:

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

Metoda WriteLine

Ova metoda dodaje ulazni niz kao zaseban redak postojećem sadržaju.

Metoda pisanja

Ulazni niz dodaje se u isti redak kao i postojeći sadržaj.

Umorni ste od traženja primjera VBA koda? Isprobajte AutoMacro!

WriteBlankLines

Ova metoda uzima broj praznih redaka koji se zapisuju u tekstualnu datoteku kao parametar.

Ovaj donji kod ilustrira razliku između različitih metoda pisanja:

12345678910111213 Metode podpisivanja ()Zatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")Postavi FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testna linija #1"FileToWrite.Write "testna linija #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testna linija #3"FileToWrite.WriteLine "testna linija #4"FileToWrite.CloseKraj podm

I rezultat:

VBA programiranje | Generator koda radi za vas!

Raspon podataka do tekstualne datoteke

Ako želite ispisati raspon podataka s radnog lista u tekstualnu datoteku, možete upotrijebiti ovaj kod:

12345678910111213141516171819 Sub OutputToTextFile ()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'ovdje možete navesti naziv tekstualne datoteke koju želite stvoritiOtvorite FileName za izlaz kao #1Postavi MyRange = Raspon ("podaci") "pretpostavlja da na radnom listu imate raspon podataka pod nazivom" podaci "Za i = 1 Za MyRange.Rows.CountZa j = 1 Za MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'tekstualna datoteka koja će imati razdjelnik zarezaSljedeće jIspis #1, LineText 'korištenjem naredbe Write umjesto Print ispisat će vaše podatke pod navodnicima u izlaznoj tekstualnoj datoteciSljedeći iZatvori #1Kraj podm

Niz u tekstualnu datoteku

Niz podataka možete spremiti i u tekstualnu datoteku na sljedeći način:

12345678910111213141516 Sub SaveArrayToTextFile ()Priguši MyArray kao varijantuZatamnite FSO kao novi FileSystemObjectPostavi FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Polje (niz ("00", "01"), niz ("10", "11"), niz ("20", "21"))Postavi FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Za n = 0 Za UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)SljedećiFileToCreate.CloseKraj podm

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave