VBA - Запис у текстовий файл

Цей підручник покаже, як писати у текстові файли за допомогою VBA.

Запис у текстовий файл

У наведених нижче кодах використовується FileSystemObject. Для того, щоб ним користуватися, вам потрібно встановити посилання на бібліотеку виконання сценарію VB.

Запис у новий текстовий файл

З CreateTextFile метод FileSystemObject Ви можете створити, а потім додати вміст до текстового файлу:

123456789 Sub FSOCreateAndWriteToTextFile ()Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")Встановіть FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "тестовий рядок"FileToCreate.CloseEnd Sub

Зверніть увагу, що вміст не буде включений у лапки.

Запис у існуючий текстовий файл

Для запису до існуючого текстового файлу можна скористатися OpenTextFile метод FileSystemObject з ForWriting режим.

123456789 Sub FSOWriteToTextFile ()Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")Встановіть FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "тестовий рядок"FileToWrite.CloseEnd Sub

Зверніть увагу, що для запису в існуючий текстовий файл не обов’язково потрібен FileSystemObject. Наведений вище приклад іншим чином показаний у цьому коді нижче (див. Інший приклад у розділі Діапазон даних до текстового файлу):

123456789 Sub WriteToTextFile ()Dim FileName As StringFileName = "C: \ Test \ TestFile.txt"Відкрийте Ім'я файлу для виведення як №1Друк №1, "тестовий рядок"Закрити №1End Sub

Зверніть увагу, що використання команди "Записати" замість "Друк" призведе до того, що доданий вміст буде укладено в лапки. Маючи обидві команди у вашому макросі

12 Напишіть №1, "тестовий рядок №1"Друк №1, "тестовий рядок №2"

призведе до такого текстового файлу:

Програмування VBA | Генератор коду працює для вас!

Додати до текстового файлу

Змінивши режим у наведеному вище коді на ForAppending, можна додати рядок до кінця текстового файлу:

1 Встановіть FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)

Метод WriteLine

Цей метод додає рядок введення окремим рядком до наявного вмісту.

Метод запису

Вхідний рядок додається до того самого рядка, що і наявний вміст.

Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!

WriteBlankLines

Цей метод приймає кількість порожніх рядків, які будуть записані в текстовий файл як параметр.

Цей код нижче ілюструє різницю між різними методами запису:

12345678910111213 Методи підзапису ()Затемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")Встановіть FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "тестовий рядок №1"FileToWrite.Write "тестовий рядок №2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "тестовий рядок №3"FileToWrite.WriteLine "тестовий рядок №4"FileToWrite.CloseEnd Sub

І результат:

Програмування VBA | Генератор коду працює для вас!

Діапазон даних до текстового файлу

Якщо ви хочете вивести діапазон даних зі свого аркуша у текстовий файл, ви можете скористатися цим кодом:

12345678910111213141516171819 Sub OutputToTextFile ()Затемнити ім’я файлу як рядок, рядок як рядокDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'тут можна вказати назву текстового файлу, який потрібно створитиВідкрийте Ім'я файлу для виведення як №1Встановити MyRange = Діапазон ("дані") ", це передбачає, що у вас на робочому аркуші є діапазон даних з назвою" дані "Для i = 1 до MyRange.Rows.CountДля j = 1 до MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'для створення текстового файлу буде роздільник із комамиДалі jДрук #1, LineText 'за допомогою команди Write замість Print призведе до того, що ваші дані будуть у лапках у вихідному текстовому файліДалі iЗакрити №1End Sub

Масив у текстовий файл

Ви також можете зберегти свій масив даних у текстовий файл таким чином:

12345678910111213141516 Sub SaveArrayToTextFile ()Dim MyArray як варіантЗатемнити FSO як новий FileSystemObjectВстановити FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Масив (Масив ("00", "01"), Масив ("10", "11"), Масив ("20", "21"))Встановіть FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Для n = 0 до UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)ДаліFileToCreate.CloseEnd Sub

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

wave wave wave wave wave