VBA - чтение текстового файла построчно

В этом руководстве будет показано, как построчно читать содержимое текстовых файлов с помощью VBA.

Мы можем прочитать текстовый файл как целый файл или построчно.

Прочитать текстовый файл построчно

Текст в текстовом файле обычно состоит из нескольких строк, разделенных разделителями. Это может быть запятая («,»), запятая с пробелом («,«), точка с запятой («;»), точка с запятой с пробелом («;»), пробел (««), табуляция (vbTab ) или в редких случаях любой другой символ, например тильда (~). Строки обычно разделяются разрывом строки (vbCRLF).

Самый простой способ прочитать текстовый файл построчно на нашем рабочем листе в VBA - это выбрать первую ячейку, в которую мы хотим поместить текст, а затем запустить следующий код:

1234567891011 Дополнительный файл чтения ()Развернуть strFile как строку, strLine как строкуstrFile = "C: \ Test \ TestFile.txt"Откройте файл strFile для ввода как # 1До EOF (1)Линейный вход №1, strLineActiveCell = strLineActiveCell.Offset (1, 0) .SelectПетляЗакрыть # 1Конец подписки

Это поместит каждую строку текстового файла в одну ячейку в Excel.

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

123456789101112131415 Sub ReadTextFile ()Dim strLine As StringDim FSO как объектDim TSO как объектУстановите FSO = CreateObject ("Scripting.FileSystemObject")Установите TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt").Делай, пока не TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) .SelectПетляTSO.ЗакрытьУстановите TSO = NothingУстановите FSO = NothingКонец подписки

Мы можем создать немного более сложный цикл, если хотим разделить строки на ячейки по их разделителям. Здесь мы использовали раннее связывание в коде и объявили объект файловой системы.

123456789101112131415161718192021222324 Подложка ReadTextFileWithSeparators ()Dim StrLine как строкаDim FSO как новый объект FileSystemObjectDim TSO как объектDim StrLineElements как вариантТусклый индекс до тех пор, покаТусклый я до тех пор, покаТусклый разделитель в виде строкиУстановите FSO = CreateObject ("Scripting.FileSystemObject")Установите TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt").Разделитель = ","Индекс = 1Делать пока TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Разделить (StrLine, Delimiter)Для i = LBound (StrLineElements) To UBound (StrLineElements)Ячейки (Индекс, i + 1). Значение = StrLineElements (i)Далее яИндекс = Индекс + 1ПетляTSO.ЗакрытьУстановите TSO = NothingУстановите FSO = NothingКонец подписки

Это приведет к разделению строк на отдельные ячейки в Excel, как показано на рисунке ниже.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave