Tämä opetusohjelma osoittaa, kuinka kirjoittaa tekstitiedostoihin VBA: n avulla.
Kirjoita tekstitiedostoon
Alla olevat koodit käyttävät FileSystemObject. Jotta voit käyttää sitä, sinun on asetettava viittaus VB-komentosarjan ajonaikaiseen kirjastoon.
Kirjoita uuteen tekstitiedostoon
Kanssa CreateTextFile menetelmä FileSystemObject voit luoda ja lisätä sisältöä tekstitiedostoon:
123456789 | Sub FSOCreateAndWriteToTextFile ()Himmennä FSO uutena FileSystemObjectinaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "testiviiva"FileToCreate.CloseEnd Sub |
Huomaa, että sisältöä ei suljeta lainausmerkkeihin.
Kirjoita olemassa olevaan tekstitiedostoon
Voit kirjoittaa olemassa olevaan tekstitiedostoon käyttämällä OpenTextFile menetelmä FileSystemObject kanssa Kirjoittamista varten -tilaan.
123456789 | Alaosa FSOWriteToTextFile ()Himmennä FSO uutena FileSystemObjectinaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testiviiva"FileToWrite.CloseEnd Sub |
Huomaa, että sinun ei välttämättä tarvitse FileSystemObjectia kirjoittaaksesi olemassa olevaan tekstitiedostoon. Yllä oleva esimerkki näkyy toisella tavalla tässä alla olevassa koodissa (katso toinen esimerkki Tietoalue -tekstitiedosto -osiosta):
123456789 | Sub WriteToTextFile ()Himmennä tiedostonimi merkkijononaFileName = "C: \ Test \ TestFile.txt"Avaa tiedostonimi nimellä #1Tulosta numero 1, "testiviiva"Sulje #1End Sub |
Huomaa, että käyttämällä Kirjoita -komentoa tulostuksen sijasta, lisätty sisältö on lainausmerkkien sisällä. Molemmat komennot makrossa
12 | Kirjoita numero 1, "testirivi #1"Tulosta numero 1, "testiviiva #2" |
tuloksena on seuraavanlainen tekstitiedosto:
VBA -ohjelmointi | Koodigeneraattori toimii sinulle!
Liitä tekstitiedostoon
Vaihtamalla yllä olevan koodin tilaksi ForAppending, tekstitiedoston loppuun voidaan lisätä rivi:
1 | Aseta FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending) |
WriteLine -menetelmä
Tämä menetelmä lisää syöttöjonon erilliseksi riviksi olemassa olevaan sisältöön.
Kirjoita menetelmä
Syöttöjono lisätään samalle riville kuin olemassa oleva sisältö.
Oletko kyllästynyt etsimään esimerkkejä VBA -koodista? Kokeile AutoMacroa!
WriteBlankLines
Tämä menetelmä ottaa parametriksi tekstitiedostoon kirjoitettavien tyhjien rivien määrän.
Tämä alla oleva koodi kuvaa eri kirjoitusmenetelmien eroa:
12345678910111213 | Sub WriteMethods ()Himmennä FSO uutena FileSystemObjectinaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testirivi #1"FileToWrite.Write "testirivi #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testirivi #3"FileToWrite.WriteLine "testirivi #4"FileToWrite.CloseEnd Sub |
Ja tulos:
VBA -ohjelmointi | Koodigeneraattori toimii sinulle!
Tietoalue tekstitiedostoon
Jos haluat tulostaa tietoalueen laskentataulukostasi tekstitiedostoon, voit käyttää tätä koodia:
12345678910111213141516171819 | Sub OutputToTextFile ()Himmennä tiedostonimi merkkijonona, riviteksti merkkijononaDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'voit määrittää tässä tekstitiedoston nimen, jonka haluat luodaAvaa tiedostonimi nimellä #1Aseta MyRange = Range ("data") 'olettaa, että laskentataulukossasi on data -alue nimeltä "data"Sillä i = 1 MyRange.Rows.CountJos j = 1 MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'luodussa tekstitiedostossa on pilkkuerotinSeuraava jTulosta numero 1, LineText 'käyttämällä Kirjoita -komentoa tulostuksen sijaan johtaa siihen, että tiedot ovat lainausmerkeissä tulostustekstitiedostossaSeuraavaksi minäSulje #1End Sub |
Array tekstitiedostoon
Voit myös tallentaa dataryhmän tekstitiedostoon seuraavasti:
12345678910111213141516 | Sub SaveArrayToTextFile ()Dim MyArray vaihtoehtoinaHimmennä FSO uutena FileSystemObjectinaAseta FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("20", "21"))Aseta FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")N = 0 UBoundille (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)SeuraavaFileToCreate.CloseEnd Sub |