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 Додаткове ReadTextFileWithSeparators ()Dim StrLine As StringЗатемнити FSO як новий FileSystemObjectDim TSO As ObjectDim StrLineElements As VariantІндекс затемнення як довгоDim i As LongРозгалужувач як рядокВстановити 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)Клітинки (індекс, i + 1). Значення = StrLineElements (i)Далі iІндекс = Індекс + 1ПетляTSO.ЗакритиВстановити TSO = НічогоВстановити FSO = НічогоEnd Sub

Це призведе до того, що рядки будуть розділені на окремі клітинки в Excel відповідно до графіку нижче.

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

wave wave wave wave wave