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.