VBA - Citiți fișierul text rând cu rând

Acest tutorial va arăta cum să citiți conținut din fișiere text linie cu linie cu VBA.

Putem fie să citim fișierul text ca un întreg fișier, fie rând cu rând.

Citiți fișierul text rând cu rând

Textul dintr-un fișier text este de obicei format din mai multe linii, separate prin delimitatori. Acestea pot fi o virgulă („,”), o virgulă cu spațiu („,„), un punct și virgulă („;”), un punct și virgulă cu spațiu („;„), un spațiu („„), o filă (vbTab ) sau, în cazuri rare, orice alt personaj, cum ar fi o tildă (~). Liniile sunt în mod normal separate printr-o întrerupere de linie (vbCRLF).

Cel mai simplu mod de a citi un fișier text linie cu linie în Foaia noastră de lucru în VBA este să selectăm prima celulă în care dorim să fie pus textul și apoi să rulăm următorul cod:

1234567891011 SubCitire fișier ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Deschideți strFile pentru intrare ca numărul 1Faceți până la EOF (1)Linie de intrare # 1, strLineActiveCell = strLineActiveCell.Offset (1, 0). SelectațiBuclăÎnchideți numărul 1Sfârșitul Sub

Aceasta va pune fiecare linie a fișierului text într-o singură celulă în Excel.

De asemenea, putem citi un fișier text în VBA folosind FileSystemObject. În codul de mai jos am folosit legarea târzie cu obiectul de sistem de fișiere. De asemenea, puteți crea o referință la acesta în proiectul dvs. VBA. Vedeți aici pentru mai multe informații.

123456789101112131415 Sub ReadTextFile ()Dim strLine As StringDim FSO ca obiectDim TSO ca obiectSetați FSO = CreateObject ("Scripting.FileSystemObject")Setați TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Faceți în timp ce nu este TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0). SelectațiBuclăTSO.ÎnchideSet TSO = NimicSet FSO = NothingSfârșitul Sub

Putem crea o buclă puțin mai complicată dacă dorim să separăm liniile în celule prin delimitatorii lor. Aici am folosit legarea timpurie în cod și am declarat obiectul sistemului de fișiere.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine Ca șirDim FSO ca nou FileSystemObjectDim TSO ca obiectDim StrLineElements as VariantReduceți indicele atât de multDim i As LongDim Delimiter Ca ȘirSetați FSO = CreateObject ("Scripting.FileSystemObject")Setați TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Delimitator = ","Index = 1Do While TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Pentru i = LBound (StrLineElements) To UBound (StrLineElements)Celule (Index, i + 1). Valoare = StrLineElements (i)Apoi euIndex = Index + 1BuclăTSO.ÎnchideSet TSO = NimicSet FSO = NothingSfârșitul Sub

Acest lucru va duce la separarea liniilor în celule individuale în Excel, conform graficului de mai jos.

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

wave wave wave wave wave