VBA - rašykite į teksto failą

Ši pamoka parodys, kaip rašyti į tekstinius failus naudojant VBA.

Rašykite į teksto failą

Žemiau esantys kodai naudoja „FileSystemObject“. Norėdami jį naudoti, turėsite nustatyti nuorodą į VB scenarijaus vykdymo laiko biblioteką.

Rašykite į naują teksto failą

Su CreateTextFile metodas „FileSystemObject“ galite sukurti ir tada pridėti turinį prie teksto failo:

123456789 Sub FSOCreateAndWriteToTextFile ()Pritemdyti FSO kaip naują „FileSystemObject“Nustatykite FSO = CreateObject ("Scripting.FileSystemObject")Nustatykite FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")„FileToCreate.Write“ parašykite „test line“FileToCreate.CosePabaiga Sub

Atminkite, kad turinys nebus įtrauktas į kabutes.

Rašykite į esamą teksto failą

Norėdami rašyti į esamą tekstinį failą, galite naudoti „OpenTextFile“ metodas „FileSystemObject“ su ForWriting režimu.

123456789 Antrinis FSOWriteToTextFile ()Pritemdyti FSO kaip naują „FileSystemObject“Nustatykite FSO = CreateObject ("Scripting.FileSystemObject")Nustatykite FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write „bandymo eilutė“FileToWrite.UždarytiPabaiga Sub

Atminkite, kad norint rašyti į esamą tekstinį failą nebūtinai reikia „FileSystemObject“. Aukščiau pateiktas pavyzdys yra parodytas kitu būdu šiame kode (žr. Kitą pavyzdį skyriuje Duomenų diapazonas į teksto failą):

123456789 Sub WriteToTextFile ()Pritemdyti failo pavadinimą kaip eilutęFileName = "C: \ Test \ TestFile.txt"Atidarykite „FileName“ išvestį kaip #1Spausdinti Nr. 1, „bandymo linija“Uždaryti #1Pabaiga Sub

Atminkite, kad naudojant komandą „Rašyti“, o ne „Spausdinti“, pridėtas turinys bus įtrauktas į kabutes. Abiejų komandų turėjimas makrokomandoje

12 Parašykite #1, „bandymo eilutė #1“Spausdinti Nr. 1, „bandymo eilutė Nr. 2“

bus gautas toks tekstinis failas:

VBA programavimas | Kodo generatorius jums tinka!

Pridėti prie teksto failo

Pakeitus aukščiau esančio kodo režimą į „ForAppending“, teksto failo pabaigoje galima pridėti eilutę:

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

„WriteLine“ metodas

Šis metodas prideda įvesties eilutę kaip atskirą eilutę prie esamo turinio.

Rašymo metodas

Įvesties eilutė pridedama toje pačioje eilutėje kaip ir esamas turinys.

Pavargote ieškoti VBA kodo pavyzdžių? Išbandykite „AutoMacro“!

„WriteBlankLines“

Šis metodas kaip tuščias eilutes įrašomas į teksto failą kaip parametras.

Šis toliau pateiktas kodas iliustruoja skirtumą tarp skirtingų rašymo metodų:

12345678910111213 Sub WriteMethods ()Pritemdyti FSO kaip naują „FileSystemObject“Nustatykite FSO = CreateObject ("Scripting.FileSystemObject")Nustatykite FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "bandymo eilutė #1"FileToWrite.Write "bandymo eilutė #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "bandymo eilutė #3"FileToWrite.WriteLine "bandymo eilutė #4"FileToWrite.UždarytiPabaiga Sub

Ir rezultatas:

VBA programavimas | Kodo generatorius jums tinka!

Duomenų diapazonas į teksto failą

Jei norite iš darbalapio į tekstinį failą išvesti duomenų diapazoną, galite naudoti šį kodą:

12345678910111213141516171819 Sub OutputToTextFile ()Pritemdyti failo pavadinimą kaip eilutę, eilutės tekstą kaip eilutęDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'čia galite nurodyti norimo sukurti teksto failo pavadinimąAtidarykite „FileName“ išvestį kaip #1Nustatykite „MyRange = Range“ („duomenys“), manoma, kad jūsų darbalapyje yra duomenų diapazonas, pavadintas „data“Jei i = 1 į MyRange.Rows.CountJei j = 1 į „MyRange.Columns.Count“LineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'kuriamas teksto failas turės kablelįKitas jSpausdinkite #1, „LineText“ naudodami komandą „Rašyti“, o ne „Spausdinti“, todėl jūsų duomenys bus pateikiami kabutėse išvesties teksto faileKitas I.Uždaryti #1Pabaiga Sub

Masyvas į teksto failą

Taip pat galite išsaugoti savo duomenų masyvą į tokį tekstinį failą:

12345678910111213141516 Sub SaveArrayToTextFile ()„Dim MyArray“ kaip variantasPritemdyti FSO kaip naują „FileSystemObject“Nustatykite FSO = CreateObject ("Scripting.FileSystemObject")„MyArray“ = masyvas (masyvas („00“, „01“), masyvas („10“, „11“), masyvas („20“, „21“))Nustatykite FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Jei n = 0 „UBound“ („MyArray“)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)KitasFileToCreate.CosePabaiga Sub

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave