VBA - lasiet teksta failu pa rindām

Satura rādītājs

Šī apmācība parādīs, kā lasīt teksta failu saturu pa rindām ar VBA.

Mēs varam lasīt teksta failu kā veselu failu vai rindu pa rindai.

Lasiet teksta failu pa rindām

Teksts teksta failā parasti sastāv no vairākām rindām, kuras atdala ar atdalītājiem. Tie var būt komats (","), komats ar atstarpi (","), semikols (";"), semikols ar atstarpi (";"), atstarpe (""), cilne (vbTab ) vai retos gadījumos jebkuru citu rakstzīmi, piemēram, tildi (~). Līnijas parasti atdala līnijas pārtraukums (vbCRLF).

Vienkāršākais veids, kā lasīt teksta failu pa rindām mūsu darblapā VBA, ir atlasīt pirmo šūnu, kurā vēlamies ievietot tekstu, un pēc tam palaist šādu kodu:

1234567891011 Apakšlasīšanas fails ()Dim strFile kā virkne, strLine kā virknestrFile = "C: \ Test \ TestFile.txt"Atveriet strFile ievadei kā #1Darīt līdz EOF (1)Līnijas ievade #1, strLineActiveCell = strLineActiveCell. Offset (1, 0). AtlasietCilpaAizvērt #1Beigu apakš

Tādējādi katra teksta faila rinda tiks ievietota vienā Excel šūnā.

Mēs varam arī izlasīt teksta failu VBA, izmantojot FileSystemObject. Zemāk esošajā kodā mēs esam izmantojuši vēlu saistīšanu ar failu sistēmas objektu. Varat arī izveidot atsauci uz to savā VBA projektā. Plašāku informāciju skatiet šeit.

123456789101112131415 Sub ReadTextFile ()Dim strLine kā virkneAptumšojiet FSO kā objektuDim PSO kā objektsIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatīt TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Darīt, kamēr nav TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell. Offset (1, 0). AtlasietCilpaPSO. AizvērtIestatīt TSO = NekasIestatīt FSO = NekasBeigu apakš

Mēs varam izveidot nedaudz sarežģītāku cilpu, ja vēlamies atdalīt līnijas šūnās ar to atdalītājiem. Šeit mēs esam izmantojuši kodā agrīnu iesiešanu un deklarējuši failu sistēmas objektu.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine kā virkneDim FSO kā jauns FileSystemObjectDim PSO kā objektsDim StrLineElements kā variantsDim indekss tik garšDim un tik ilgiAptumšot norobežotāju kā virkniIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatīt TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Atdalītājs = ","Indekss = 1Darīt, kamēr TSO.AtEndOfStream = NepareiziStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Attiecībā uz i = LBound (StrLineElements) līdz UBound (StrLineElements)Šūnas (indekss, i + 1). Vērtība = StrLineElements (i)Tālāk iIndekss = indekss + 1CilpaPSO. AizvērtIestatīt TSO = NekasIestatīt FSO = NekasBeigu apakš

Tā rezultātā rindas tiks sadalītas atsevišķās Excel šūnās, kā parādīts zemāk esošajā grafikā.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave