Š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 |