VBA - Scrieți în fișierul text

Acest tutorial va arăta cum să scrieți în fișiere text folosind VBA.

Scrieți într-un fișier text

Codurile de mai jos folosesc FileSystemObject. Pentru a-l utiliza, va trebui să setați o referință la biblioteca de execuție a scriptului VB.

Scrieți în fișierul text nou

Cu CreateTextFile Metodă de FileSystemObject puteți crea și apoi adăuga conținut într-un fișier text:

123456789 Sub FSOCreateAndWriteToTextFile ()Dim FSO ca nou FileSystemObjectSetați FSO = CreateObject ("Scripting.FileSystemObject")Setați FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "test line"FileToCreate.CloseSfârșitul Sub

Vă rugăm să rețineți că conținutul nu va fi inclus în ghilimele.

Scrieți în fișierul text existent

Pentru a scrie într-un fișier text existent puteți utiliza OpenTextFile Metodă de FileSystemObject cu Pentru scris modul.

123456789 Sub FSOWriteToTextFile ()Dim FSO ca nou FileSystemObjectSetați FSO = CreateObject ("Scripting.FileSystemObject")Setați FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "test line"FileToWrite.CloseSfârșitul Sub

Vă rugăm să rețineți că nu aveți neapărat nevoie de FileSystemObject pentru a scrie într-un fișier text existent. Exemplul de mai sus este prezentat într-un alt mod în acest cod de mai jos (vezi alt exemplu în secțiunea Interval de date către fișier text):

123456789 Sub WriteToTextFile ()Dim Numele fișierului ca șirFileName = "C: \ Test \ TestFile.txt"Deschideți FileName pentru ieșire ca numărul 1Tipăriți numărul 1, „linia de testare”Închideți numărul 1Sfârșitul Sub

Vă rugăm să rețineți că utilizarea comenzii Write în loc de Print va avea ca rezultat adăugarea cuprinsă între ghilimele. Având ambele comenzi în macro

12 Scrieți numărul 1, „linia de testare nr. 1”Tipăriți numărul 1, „linia de testare nr. 2”

va avea ca rezultat un fișier text ca acesta:

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Atașați la fișierul text

Prin schimbarea modului din codul de mai sus la ForAppending, o linie poate fi adăugată la sfârșitul fișierului text:

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

Metoda WriteLine

Această metodă adaugă șirul de intrare ca o linie separată la conținutul existent.

Metoda de scriere

Șirul de intrare este atașat pe aceeași linie ca și conținutul existent.

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

WriteBlankLines

Această metodă ia ca număr un număr de linii goale care trebuie scrise în fișierul text ca parametru.

Acest cod de mai jos ilustrează diferența dintre diferitele metode de scriere:

12345678910111213 Metode de scriere secundare ()Dim FSO ca nou FileSystemObjectSetați FSO = CreateObject ("Scripting.FileSystemObject")Setați FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "linia de test # 1"FileToWrite.Write "linia de test # 2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "linia de test # 3"FileToWrite.WriteLine "linia de test # 4"FileToWrite.CloseSfârșitul Sub

Și rezultatul:

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Gama de date către fișierul text

Dacă doriți să transmiteți un interval de date de la foaia de lucru la un fișier text, puteți utiliza acest cod:

12345678910111213141516171819 Sub OutputToTextFile ()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'puteți specifica aici numele fișierului text pe care doriți să îl creațiDeschideți FileName pentru ieșire ca numărul 1Setați MyRange = Range („date”) ”presupune că aveți un interval de date numit„ data ”în foaia de lucruPentru i = 1 To MyRange.Rows.CountPentru j = 1 To MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'care creează fișierul text va avea un separator de virguleUrmătorul jPrint # 1, LineText 'folosind comanda Write în loc de Print va avea ca rezultat ca datele dvs. să fie ghilimele în fișierul text de ieșireApoi euÎnchideți numărul 1Sfârșitul Sub

Array to Text File

De asemenea, puteți salva matricea de date într-un fișier text ca acesta:

12345678910111213141516 Sub SaveArrayToTextFile ()Dim MyArray Ca VariantDim FSO ca nou FileSystemObjectSetați FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("20", "21"))Setați FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Pentru n = 0 la UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)UrmătorulFileToCreate.CloseSfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave