VBA - Čítajte textový súbor riadok po riadku

Tento tutoriál ukáže, ako čítať obsah z textových súborov riadok po riadku pomocou jazyka VBA.

Textový súbor môžeme čítať buď ako celý súbor, alebo riadok po riadku.

Prečítajte si textový súbor riadok po riadku

Text v textovom súbore je obvykle tvorený niekoľkými riadkami, oddelenými oddeľovačmi. Môžu to byť čiarky („,“), čiarka s medzerou („,“), bodkočiarka („;“), bodkočiarka s medzerou („;“), medzera („“), tabulátor (vbTab ) alebo v zriedkavých prípadoch akýkoľvek iný znak, ako napríklad vlnovka (~). Riadky sú spravidla oddelené zalomením riadka (vbCRLF).

Najjednoduchší spôsob, ako čítať textový súbor po riadkoch do nášho pracovného hárka vo VBA, je vybrať prvú bunku, do ktorej chceme vložiť text, a potom spustiť nasledujúci kód:

1234567891011 Vedľajší súbor na čítanie ()Dim strFile ako reťazec, strLine ako reťazecstrFile = "C: \ Test \ TestFile.txt"Otvorte súbor strFile pre vstup ako #1Robiť do EOF (1)Riadkový vstup č. 1, strLineActiveCell = strLineActiveCell.Offset (1, 0). VyberteSlučkaZatvorte #1Koniec pod

Tým sa každý riadok textového súboru vloží do jednej bunky v programe Excel.

Textový súbor vo VBA môžeme čítať aj pomocou programu FileSystemObject. V nižšie uvedenom kóde sme použili neskorú väzbu s objektom systému súborov. Môžete naň tiež vytvoriť odkaz vo svojom projekte VBA. Ďalšie informácie nájdete tu.

123456789101112131415 Sub ReadTextFile ()Dim strLine ako reťazecDim FSO ako objektDim TSO ako objektNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Nerobte TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0). VyberteSlučkaTSO.ZavrieťNastaviť TSO = ničNastaviť FSO = NičKoniec pod

O niečo komplikovanejšiu slučku môžeme vytvoriť, ak chceme oddeliť riadky do buniek ich oddeľovačmi. Tu sme v kóde použili ranú väzbu a deklarovali objekt systému súborov.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine ako reťazecDim FSO ako nový FileSystemObjectDim TSO ako objektDim StrLineElements Ako variantDim Index ako dlhýDim i As LongDim Delimiter As StringNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Delimiter = ","Index = 1Robiť pri TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Pre i = LBound (StrLineElements) až UBound (StrLineElements)Bunky (index, i + 1). Hodnota = StrLineElements (i)Ďalej iIndex = Index + 1SlučkaTSO.ZavrieťNastaviť TSO = ničNastaviť FSO = NičKoniec pod

Výsledkom bude, že riadky budú v programe Excel oddelené do jednotlivých buniek podľa obrázku nižšie.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave