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.