VBA -lukutekstitiedosto (luku, jäsentäminen ja tuonti)

Tämä opetusohjelma osoittaa, kuinka lukea sisältöä tekstitiedostoista ja liittää se laskentataulukoihin VBA: n avulla.

Lue tekstitiedoston sisältö laskentataulukkoon

Yksinkertaisin tapa lukea tekstitiedoston sisältö on kopioida se laskentataulukon soluun.

123456789101112 Sub FSOPasteTextFileContent ()Himmennä FSO uutena FileSystemObjectinaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta FileToRead = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForReading) 'lisää tähän tekstitiedoston polkuTextString = FileToRead.ReadAllFileToRead.CloseThisWorkbook.Sheets (1) .Range ("A1"). Value = TextString 'voit määrittää laskentataulukon ja solun, johon tekstitiedoston sisältö liitetäänEnd Sub

Yllä oleva koodi käyttää FileSystemObject. Jotta voit käyttää sitä, sinun on asetettava viittaus VB-komentosarjan ajonaikaiseen kirjastoon. Katso lisätietoja täältä.

Ilman FileSystemObjectia voit liittää tekstitiedoston sisällön alla olevaan koodiin. Jos tekstitiedosto sisältää rivinerottimen, se liitetään rivi riviltä.

123456789101112 Sub PasteTextFileContent ()Dim wbExcel kuin työkirja, wbText kuin työkirjaDim wsExcel kuten laskentataulukkoSet wbExcel = ThisWorkbook 'määritä tässä mihin Excel -tiedostoon tekstitiedoston sisältö liitetäänAseta wsExcel = wbExcel.Sheets (1) 'määritä tässä käytettävä laskentataulukkoAseta wbText = Työkirjat.Open ("C: \ Test \ TestFile.txt") 'lisää tähän tekstitiedoston polkuwbText.Sheets (1) .Cells.Copy wsExcel.CellswbText.Close SaveChanges: = VääräEnd Sub

Lue tekstitiedoston sisältö rivi riviltä, ​​sarake sarakkeelta

Tekstitiedostossasi voi olla useita rivejä ja useita elementtejä, jotka on lueteltu riveillä pilkuilla, puolipisteillä, sarkaimilla, välilyönneillä jne. Erotettuna … Jotta voit lukea ja liittää tekstitiedoston sisällön oikein, saatat tarvita tätä koodia alla:

1234567891011121314151617181920212223242526 Sub PasteTextFileContentWithSeparators ()Dim StrLine merkkijononaHimmennä FSO uutena FileSystemObjectinaHimmennä siirtoverkonhaltija objektinaDim StrLineElements as VariantDim -indeksi niin pitkäDim niin kauanHimmennä erotin merkkijononaAseta FSO = CreateObject ("Scripting.FileSystemObject")Aseta TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Erotin = "," 'tekstitiedostossa käytetty erotinIndeksi = 1Do while TSO.AtEndOfStream = VääräStrLine = TSO.LueLineStrLineElements = Jaettu (StrLine, erotin)I = LBound (StrLineElements) - UBound (StrLineElements)Solut (indeksi, i + 1). Arvo = StrLineElements (i) 'tämä koodi alkaa liittää tekstitiedoston sisällön aktiivisen laskentataulukon A1 (solu (1,1)) -solustaSeuraavaksi minäIndeksi = indeksi + 1SilmukkaTSO. SuljeEnd Sub

Tekstitiedostossa käytettävä erotin voi olla pilkku (“,”), pilkku välilyönnillä (“,“), puolipiste (“;”), puolipiste välilyönnillä (“;”), välilyönti (““), välilehti (vaihda sitten Erotin = vbTab) tai harvoissa tapauksissa jokin muu merkki.

Lue tekstitiedostot taulukkoihin

Jos sinun on luettava tekstitiedoston sisältö taulukkoon ja liitettävä rivi riviltä, ​​sarake sarakkeelta laskentataulukkoosi, tarvitset tämän koodin alla:

12345678910111213141516171819202122232425262728293031323334 Sub ReadDelimitedTextFileIntoArray ()Himmennä erotin merkkijononaHimmennä tekstitiedosto kokonaislukunaHimmennä FilePath merkkijononaHimmennä FileContent merkkijononaDim LineArray () merkkijononaDim DataArray () merkkijononaDim TempArray () merkkijononaDim rw Niin pitkä, col Niin pitkäErotin = vbTab 'tekstitiedostossa käytetty erotinFilePath = "C: \ Test \ TestFileTab.txt"rw = 1TextFile = FreeFileAvaa FilePath syötettäväksi tekstitiedostonaFileContent = Tulo (LOF (TextFile), TextFile)Sulje TextFileLineArray () = Split (FileContent, vbNewLine) 'muuta vbNewLine muotoon vbCrLf tai vbLf riippuen tekstitiedostossa käytetystä rivierottimestaX = LBound (LineArray) - UBound (LineArray)Jos Len (Trim (LineArray (x))) 0 SittenTempArray = Jaettu (LineArray (x), Erotin)col = UBound (TempArray)ReDim Preserve DataArray (col, rw)Y = LBound (TempArray) - UBound (TempArray)DataArray (y, rw) = TempArray (y)Solut (x + 1, y + 1). Arvo = DataArray (y, rw) 'tämä koodi alkaa liittää tekstitiedoston sisällön aktiivisen laskentataulukon A1 (solu (1,1)) -solustaSeuraava yLoppu Josrw = rw + 1Seuraava xEnd Sub

Tekstitiedoston rivierottimet voivat olla rivinvaihdon ja rivinsiirtoyhdistelmän (Chr (13)+Chr (10)) tai rivinsiirto (Chr (10)). Käytä vastaavasti vbCrLf tai vbLf. Jos et ole varma, käytä vbNewLine -merkkiä rivinerottimen osoittamiseen.

wave wave wave wave wave