VBA - Odczytaj plik tekstowy wiersz po wierszu

Ten samouczek pokaże, jak czytać zawartość z plików tekstowych wiersz po wierszu za pomocą VBA.

Możemy czytać plik tekstowy jako cały plik lub wiersz po wierszu.

Czytaj plik tekstowy wiersz po wierszu

Tekst w pliku tekstowym składa się zwykle z kilku wierszy oddzielonych ogranicznikami. Mogą to być przecinek („,”), przecinek ze spacją („,”), średnik („;”), średnik ze spacją („;”), spacja („”), tabulacja (vbTab ) lub w rzadkich przypadkach dowolny inny znak, taki jak tylda (~). Wiersze są zwykle oddzielone podziałem wiersza (vbCRLF).

Najłatwiejszym sposobem odczytania pliku tekstowego wiersz po wierszu w naszym Arkuszu roboczym w VBA jest wybranie pierwszej komórki, w której chcemy umieścić tekst, a następnie uruchomienie następującego kodu:

1234567891011 Sub ReadFile()Dim strFile As String, strLine As StringstrFile = "C:\Test\TestFile.txt"Otwórz plik strFile dla danych wejściowych jako nr 1Rób do EOF(1)Wejście liniowe nr 1, strLineAktywnaKomórka = strLineActiveCell.Offset(1, 0).WybierzPętlaZamknij #1Napis końcowy

Spowoduje to umieszczenie każdego wiersza pliku tekstowego w jednej komórce w programie Excel.

Możemy również odczytać plik tekstowy w VBA za pomocą FileSystemObject. W poniższym kodzie użyliśmy późnego wiązania z obiektem systemu plików. Możesz również utworzyć odwołanie do niego w swoim projekcie VBA. Zobacz tutaj, aby uzyskać więcej informacji.

123456789101112131415 Sub ReadTextFile()Dim strLine jako ciągDim FSO jako obiektDim TSO jako obiektUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Nie rób tego TSO.AtEndOfStreamstrLine = TSO.ReadLineAktywnaKomórka = strLineActiveCell.Offset(1, 0).WybierzPętlaOSP.ZamknijUstaw TSO = NicUstaw FSO = NicNapis końcowy

Możemy stworzyć nieco bardziej skomplikowaną pętlę, jeśli chcemy rozdzielić linie na komórki za pomocą ich ograniczników. Tutaj użyliśmy wczesnego wiązania w kodzie i zadeklarowaliśmy obiekt systemu plików.

123456789101112131415161718192021222324 Sub ReadTextFile WithSeparators()Dim StrLine jako ciągDim FSO jako nowy obiekt systemu plikówDim OSP jako obiektDim StrLineElements jako wariantIndeks przyciemnienia tak długoPrzyciemnij i tak długoOgranicznik przyciemnienia jako ciągUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Ogranicznik = ","Indeks = 1Rób, gdy TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Podział(StrLine, separator)For i = LBound(StrLineElements) To UBound(StrLineElements)Komórki(Indeks, i + 1)). Wartość = StrLineElements(i)Dalej jaIndeks = Indeks + 1PętlaOSP.ZamknijUstaw TSO = NicUstaw FSO = NicNapis końcowy

Spowoduje to podział linii na poszczególne komórki w Excelu, jak pokazano na poniższej grafice.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave