Šī apmācība parādīs, kā rakstīt teksta failos, izmantojot VBA.
Rakstiet teksta failā
Zemāk esošie kodi izmanto FileSystemObject. Lai to izmantotu, jums būs jāiestata atsauce uz VB skripta izpildes laika bibliotēku.
Rakstiet jaunā teksta failā
Ar CreateTextFile metode FileSystemObject varat izveidot un pēc tam pievienot teksta failam saturu:
123456789 | Sub FSOCreateAndWriteToTextFile ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatiet FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "testa rindiņa"FileToCreate.CloseBeigu apakš |
Lūdzu, ņemiet vērā, ka saturs netiks pievienots pēdiņām.
Rakstiet esošajā teksta failā
Lai rakstītu esošā teksta failā, varat izmantot OpenTextFile metode FileSystemObject ar ForWriting režīmu.
123456789 | Sub FSOWriteToTextFile ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatīt FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testa līnija"FileToWrite.CloseBeigu apakš |
Lūdzu, ņemiet vērā, ka jums nav obligāti nepieciešams FileSystemObject, lai rakstītu esošā teksta failā. Iepriekš minētais piemērs šajā kodā ir parādīts citā veidā (skatiet citu piemēru sadaļā Datu diapazons līdz teksta failam):
123456789 | Sub WriteToTextFile ()Dim faila nosaukums kā virkneFileName = "C: \ Test \ TestFile.txt"Atveriet FileName izvadam kā #11. izdruka, "testa līnija"Aizvērt #1Beigu apakš |
Lūdzu, ņemiet vērā, ka, izmantojot komandu Rakstīt, nevis drukāt, pievienotais saturs tiks pievienots pēdiņās. Abas komandas makro
12 | Uzrakstiet #1, "testa rindiņa #1"1. izdruka, "testa līnija #2" |
radīsies šāds teksta fails:
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Pievienot teksta failam
Mainot iepriekšminētā koda režīmu uz ForAppending, teksta faila beigās var pievienot rindu:
1 | Iestatīt FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending) |
WriteLine metode
Šī metode pievieno ievades virkni kā atsevišķu rindu esošajam saturam.
Rakstīšanas metode
Ievades virkne tiek pievienota tajā pašā rindā, kurā esošais saturs.
Vai esat noguris no VBA koda piemēru meklēšanas? Izmēģiniet AutoMacro!
WriteBlankLines
Šī metode kā parametru ņem teksta failā ierakstāmo tukšo rindu skaitu.
Šis kods parāda atšķirību starp dažādām rakstīšanas metodēm:
12345678910111213 | Sub WriteMethods ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatīt FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testa rindiņa #1"FileToWrite.Write "testa rindiņa #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "testa līnija #3"FileToWrite.WriteLine "testa līnija #4"FileToWrite.CloseBeigu apakš |
Un rezultāts:
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Datu diapazons līdz teksta failam
Ja vēlaties izvadīt datu diapazonu no darblapas uz teksta failu, varat izmantot šo kodu:
12345678910111213141516171819 | Sub OutputToTextFile ()Dim faila nosaukums kā virkne, rindas teksts kā virkneDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'šeit varat norādīt teksta faila nosaukumu, kuru vēlaties izveidotAtveriet FileName izvadam kā #1Iestatīt MyRange = Diapazons ("dati") 'tas pieņem, ka jūsu darblapā ir datu diapazons ar nosaukumu "dati"I = 1 uz MyRange.Rows.CountJ = 1 uz MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'teksta faila izveidošanai būs komatsNākamais jDrukājot Nr. 1, LineText ', izmantojot komandu Rakstīt, nevis drukāt, jūsu izvades teksta failā jūsu dati būs pēdiņāsTālāk iAizvērt #1Beigu apakš |
Masīvs uz teksta failu
Varat arī saglabāt savu datu masīvu teksta failā šādi:
12345678910111213141516 | Sub SaveArrayToTextFile ()Dim MyArray kā variantsDim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")MyArray = masīvs (masīvs ("00", "01"), masīvs ("10", "11"), masīvs ("20", "21"))Iestatiet FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Ja n = 0 uz UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)NākamaisFileToCreate.CloseBeigu apakš |