VBA - Четене на текстов файл ред по ред

Този урок ще покаже как да четете съдържание от текстови файлове ред по ред с VBA.

Можем да четем текстовия файл като цял файл или ред по ред.

Прочетете текстов файл ред по ред

Текстът в текстов файл обикновено се състои от няколко реда, разделени с разделители. Това могат да бъдат запетая („,“), запетая с интервал („,“), точка и запетая („;“), точка и запетая с интервал („;“), интервал („“), раздел (vbTab ) или в редки случаи друг символ като тилда (~). Редовете обикновено са разделени с прекъсване на ред (vbCRLF).

Най -лесният начин да прочетете текстов файл ред по ред в нашия работен лист във VBA е да изберете първата клетка, където искаме да бъде поставен текстът, и след това да изпълните следния код:

1234567891011 Sub ReadFile ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Отворете strFile за въвеждане като #1Направете до EOF (1)Линеен вход #1, strLineActiveCell = strLineActiveCell.Offset (1, 0) .ИзберетеЦикълЗатворете #1End Sub

Това ще постави всеки ред от текстовия файл в една клетка в Excel.

Можем също да четем текстов файл във VBA с помощта на FileSystemObject. В кода по -долу сме използвали късно свързване с обекта на файловата система. Можете също да създадете препратка към него във вашия VBA проект. Вижте тук за повече информация.

123456789101112131415 Sub ReadTextFile ()Dim strLine As StringDim FSO като обектDim TSO As ObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject")Задайте TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Правете, докато не сте TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) .ИзберетеЦикълTSO.ЗатвориЗадайте TSO = НищоЗадайте FSO = НищоEnd Sub

Можем да създадем малко по -сложен цикъл, ако искаме да разделим линиите в клетки чрез техните разделители. Тук използвахме ранното свързване в кода и декларирахме обект на файлова система.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine As StringЗатъмнете FSO като нов FileSystemObjectDim TSO As ObjectDim StrLineElements като вариантDim Index As LongDim i As LongDim Delimiter As StringЗадайте FSO = CreateObject ("Scripting.FileSystemObject")Задайте TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Разделител = ","Индекс = 1Do While TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Разделяне (StrLine, Delimiter)За i = LBound (StrLineElements) Към UBound (StrLineElements)Клетки (Index, i + 1). Value = StrLineElements (i)Следва iИндекс = Индекс + 1ЦикълTSO.ЗатвориЗадайте TSO = НищоЗадайте FSO = НищоEnd Sub

Това ще доведе до разделяне на редовете в отделни клетки в Excel според графиката по -долу.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave