VBA - Lue tekstitiedosto rivi riviltä

Tämä opetusohjelma osoittaa, kuinka lukea sisältöä tekstitiedostoista rivi riviltä VBA: n kanssa.

Voimme joko lukea tekstitiedoston kokonaisena tiedostona tai rivi riviltä.

Lue tekstitiedosto rivi riviltä

Tekstitiedoston teksti koostuu yleensä useista riveistä, jotka on erotettu erotinmerkeillä. Nämä voivat olla pilkku (","), pilkku, jossa on välilyönti (","), puolipiste (";"), puolipiste, jossa on välilyönti (";"), välilyönti (""), välilehti (vbTab ) tai harvinaisissa tapauksissa muita hahmoja, kuten tilde (~). Rivit erotetaan tavallisesti rivinvaihdolla (vbCRLF).

Helpoin tapa lukea tekstitiedosto rivi riviltä VBA -laskentataulukkoomme on valita ensimmäinen solu, johon haluamme tekstin, ja suorittaa sitten seuraava koodi:

1234567891011 Alitiedosto ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Avaa strFile syötettäväksi #1Tee kunnes EOF (1)Line Input #1, strLineActiveCell = strLineActiveCell.Offset (1, 0) ValitseSilmukkaSulje #1End Sub

Tämä asettaa tekstitiedoston jokaisen rivin yhteen soluun Excelissä.

Voimme myös lukea tekstitiedoston VBA: ssa käyttämällä FileSystemObjectia. Alla olevassa koodissa olemme käyttäneet myöhäistä sidontaa tiedostojärjestelmäobjektin kanssa. Voit myös luoda viitteen siihen VBA -projektissasi. Katso lisätietoja täältä.

123456789101112131415 Sub ReadTextFile ()Dim strLine merkkijononaHimmennä FSO objektinaHimmennä siirtoverkonhaltija kohteenaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Tee kun ei TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) ValitseSilmukkaTSO. SuljeAseta TSO = ei mitäänAseta FSO = ei mitäänEnd Sub

Voimme luoda hieman monimutkaisemman silmukan, jos haluamme erottaa rivit soluiksi niiden erottimien avulla. Tässä olemme käyttäneet koodin varhaista sitomista ja julistaneet tiedostojärjestelmäobjektin.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine merkkijononaHimmennä FSO uutena FileSystemObjectinaHimmennä siirtoverkonhaltija kohteenaDim StrLineElements as VariantDim -indeksi niin pitkäDim niin kauanHimmennä erotin merkkijononaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Erotin = ","Indeksi = 1Do while TSO.AtEndOfStream = VääräStrLine = TSO.LueLineStrLineElements = Jaettu (StrLine, erotin)I = LBound (StrLineElements) - UBound (StrLineElements)Solut (indeksi, i + 1). Arvo = StrLineElements (i)Seuraavaksi minäIndeksi = indeksi + 1SilmukkaTSO. SuljeAseta TSO = ei mitäänAseta FSO = ei mitäänEnd Sub

Tämän seurauksena rivit erotetaan yksittäisiksi soluiksi Excelissä alla olevan kuvan mukaisesti.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave