Цей підручник демонструє, як читати вміст із текстових файлів по рядку за допомогою 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 відповідно до графіку нижче.