VBA - Branje besedilne datoteke po vrsticah

Ta vadnica bo pokazala, kako berete vsebino iz besedilnih datotek po vrstici z VBA.

Besedilno datoteko lahko beremo kot celotno datoteko ali pa vrstico za vrstico.

Preberite besedilno datoteko po vrsticah

Besedilo v besedilni datoteki je običajno sestavljeno iz več vrstic, ločenih z ločili. To so lahko vejica (“,”), vejica s presledkom (“,“), podpičje (“;”), podpičje s presledkom (“;“), presledek (““), zavihek (vbTab ) ali v redkih primerih kateri koli drug znak, na primer tilda (~). Vrstice so običajno ločene s prelomom vrstice (vbCRLF).

Najlažji način za branje besedilne datoteke po vrstici v naš delovni list v VBA je, da izberete prvo celico, kamor želimo vnesti besedilo, in nato zaženete naslednjo kodo:

1234567891011 Sub ReadFile ()Zatemni strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Odprite strFile za vnos kot #1Naredi do EOF (1)Vrstni vhod #1, strLineActiveCell = strLineActiveCell.Offset (1, 0) .IzberiZankaZapri #1End Sub

To bo postavilo vsako vrstico besedilne datoteke v eno celico v Excelu.

Besedilno datoteko lahko v VBA preberemo tudi z uporabo FileSystemObject. V spodnji kodi smo uporabili pozno vezavo s predmetom datotečnega sistema. Sklic na to lahko ustvarite tudi v svojem projektu VBA. Za več informacij glejte tukaj.

123456789101112131415 Sub ReadTextFile ()Zatemni strLine kot nizZatemni FSO kot objektDim TSO kot objektNastavite FSO = CreateObject ("Scripting.FileSystemObject")Nastavite TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Naredi, čeprav ni TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) .IzberiZankaTSO.ZapriNastavite TSO = NičNastavite FSO = NičEnd Sub

Nekoliko bolj zapleteno zanko lahko ustvarimo, če želimo črte ločiti v celice po njihovih ločevalcih. Tu smo v kodi uporabili zgodnjo vezavo in razglasili objekt datotečnega sistema.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine As StringZatemni FSO kot nov datotečni sistemObjektDim TSO kot objektDim StrLineElements kot variantaZatemni indeks tako dolgoDim i As LongDim Delimiter As StringNastavite FSO = CreateObject ("Scripting.FileSystemObject")Nastavite TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Ločilo = ","Indeks = 1Naredi TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Razdeljeno (StrLine, Delimiter)Za i = LBound (StrLineElements) Za UBound (StrLineElements)Celice (Indeks, i + 1). Vrednost = StrLineElements (i)Naprej iIndeks = Indeks + 1ZankaTSO.ZapriNastavite TSO = NičNastavite FSO = NičEnd Sub

To bo povzročilo, da se vrstice ločijo v posamezne celice v Excelu, kot je prikazano na spodnji sliki.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave