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.