VBA - skaitykite teksto failą eilute po eilutės

Ši pamoka parodys, kaip skaityti turinį iš teksto failų eilutėmis su VBA.

Mes galime skaityti tekstinį failą kaip visą failą arba eilutę po eilutės.

Skaitykite teksto failą eilute po eilutės

Tekstą teksto faile paprastai sudaro kelios eilutės, atskirtos skiriamuoju ženklu. Tai gali būti kablelis („,“), kablelis su tarpais („,“), kabliataškis („;“), kabliataškis su tarpais („;“), tarpas („“), skirtukas (vbTab ) arba retais atvejais - bet koks kitas simbolis, pvz., tildė (~). Paprastai linijos atskiriamos eilučių pertrauka (vbCRLF).

Lengviausias būdas skaityti teksto failą eilutėje į mūsų darbalapį VBA yra pasirinkti pirmą langelį, kuriame norime įdėti tekstą, ir tada paleisti šį kodą:

1234567891011 Sub ReadFile ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Atidarykite strFile, kad įvestumėte kaip #1Atlikti iki EOF (1)Linijos įvestis #1, strLineActiveCell = strLine„ActiveCell. Offset“ (1, 0). PasirinkiteKilpaUždaryti #1Pabaiga Sub

Taip kiekviena teksto failo eilutė bus sudėta į vieną „Excel“ langelį.

Mes taip pat galime perskaityti tekstinį failą VBA naudodami „FileSystemObject“. Žemiau esančiame kode mes naudojome vėlyvą susiejimą su failų sistemos objektu. Taip pat galite sukurti nuorodą į tai savo VBA projekte. Daugiau informacijos rasite čia.

123456789101112131415 Sub ReadTextFile ()„Dim strLine“ kaip eilutėUžtemdyti FSO kaip objektąApšviesti PSO kaip objektąNustatykite FSO = CreateObject ("Scripting.FileSystemObject")Nustatykite TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")„Do while Not TSO.AtEndOfStream“strLine = TSO.ReadLineActiveCell = strLine„ActiveCell. Offset“ (1, 0). PasirinkiteKilpaPSO. UždarytiNustatyti TSO = NiekoNustatyti FSO = NiekoPabaiga Sub

Mes galime sukurti šiek tiek sudėtingesnę kilpą, jei norime atskirti linijas į ląsteles pagal jų ribas. Čia mes naudojome ankstyvą kodo įrišimą ir paskelbėme failų sistemos objektą.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()„Dim StrLine“ kaip eilutėPritemdyti FSO kaip naują „FileSystemObject“Užblokuoti PSO kaip objektą„Dim StrLineElements As Variant“Dim indeksas kaip ilgasTamsiai ilgasDim Dimimeter as StringNustatykite FSO = CreateObject ("Scripting.FileSystemObject")Nustatykite TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Skyriklis = ","Indeksas = 1Do while TSO.AtEndOfStream = NetiesaStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)I = LBound (StrLineElements) iki UBound (StrLineElements)Ląstelės (indeksas, i + 1). Vertė = StrLineElements (i)Kitas I.Indeksas = indeksas + 1KilpaPSO. UždarytiNustatyti TSO = NiekoNustatyti FSO = NiekoPabaiga Sub

Dėl to eilutės bus atskirtos į atskirus „Excel“ langelius, kaip parodyta paveikslėlyje žemiau.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave