VBA - lugege tekstifaili rida -realt

Lang L: none (table-of-contents)

See õpetus näitab, kuidas lugeda tekstifailide sisu VBA abil rida -realt.

Me võime tekstifaili lugeda terve failina või rida -realt.

Lugege tekstifaili rida -realt

Tekstifaili tekst koosneb tavaliselt mitmest reast, mis on eraldatud eraldajatega. Need võivad olla koma (“,”), koma tühikuga (“,“), semikoolon (“;”), semikoolon tühikuga (“;“), tühik (““), sakk (vbTab ) või harvadel juhtudel mõni muu tegelane, näiteks tilde (~). Read eraldatakse tavaliselt reavahega (vbCRLF).

Lihtsaim viis tekstifaili ridade kaupa lugemiseks meie töölehele VBA -s on valida esimene lahter, kuhu soovime teksti panna, ja seejärel käivitada järgmine kood:

1234567891011 Alamlugemisfail ()Dim strFile kui string, strLine kui stringstrFile = "C: \ Test \ TestFile.txt"Avage strFile sisendiks #1Tehke kuni EOF -ni (1)Liini sisend #1, strLineActiveCell = strLineActiveCell. Offset (1, 0). ValigeLoopSule #1End Sub

See paneb tekstifaili iga rea ​​Exceli ühte lahtrisse.

Tekstifaili saame lugeda ka VBA -s, kasutades FileSystemObjecti. Allolevas koodis oleme kasutanud failisüsteemi objektiga hilist sidumist. Samuti saate sellele viite luua oma VBA projektis. Lisateavet leiate siit.

123456789101112131415 Sub ReadTextFile ()Dim strLine kui stringDim FSO objektinaDim TSO kui objektMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Tehke, kui mitte TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell. Offset (1, 0). ValigeLoopTSO. SuleMäära TSO = pole midagiMäära FSO = pole midagiEnd Sub

Võime luua mõnevõrra keerulisema silmuse, kui soovime read eraldada nende lahtrite järgi lahtriteks. Siin oleme kasutanud koodis varajast sidumist ja deklareerinud failisüsteemi objekti.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine stringinaDim FSO uue failisüsteemi objektinaDim TSO kui objektDim StrLineElements VariantPimendusindeks nii kauaDim i As LongDim eraldusmärk stringinaMäära FSO = CreateObject ("Scripting.FileSystemObject")Määra TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Eraldaja = ","Indeks = 1Do while TSO.AtEndOfStream = ValeStrLine = TSO.ReadLineStrLineElements = Split (StrLine, eraldaja)I = LBound (StrLineElements) kuni UBound (StrLineElements)Lahtrid (indeks, i + 1). Väärtus = StrLineElements (i)Edasi iIndeks = indeks + 1LoopTSO. SuleMäära TSO = pole midagiMäära FSO = pole midagiEnd Sub

Selle tulemusel eraldatakse read Exceli üksikuteks lahtriteks vastavalt allolevale graafikule.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave