VBA - запись в текстовый файл

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

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

В приведенных ниже кодах используется FileSystemObject. Чтобы использовать его, вам нужно будет установить ссылку на библиотеку времени выполнения сценария VB.

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

С CreateTextFile метод FileSystemObject вы можете создать, а затем добавить контент в текстовый файл:

123456789 Подложка FSOCreateAndWriteToTextFile ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")Установите FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "тестовая строка"FileToCreate.CloseКонец подписки

Обратите внимание, что содержимое не будет заключаться в кавычки.

Запись в существующий текстовый файл

Для записи в существующий текстовый файл вы можете использовать OpenTextFile метод FileSystemObject с участием Для записи режим.

123456789 Подложка FSOWriteToTextFile ()Dim FSO как новый объект FileSystemObjectУстановите FSO = CreateObject ("Scripting.FileSystemObject")Установите FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "тестовая строка"FileToWrite.CloseКонец подписки

Обратите внимание, что для записи в существующий текстовый файл не обязательно, чтобы FileSystemObject. Приведенный выше пример показан другим способом в этом коде ниже (см. Другой пример в разделе «Диапазон данных в текстовый файл»):

123456789 Sub WriteToTextFile ()Уменьшить имя файла как строкуFileName = "C: \ Test \ TestFile.txt"Открыть имя файла для вывода как # 1Печать №1, "тестовая строка"Закрыть # 1Конец подписки

Обратите внимание, что использование команды «Запись» вместо «Печать» приведет к заключению добавленного содержимого в кавычки. Наличие обеих команд в вашем макросе

12 Напишите # 1, "тестовая строка # 1".Распечатайте # 1, "тестовая строка # 2"

приведет к текстовому файлу, подобному этому:

Программирование на VBA | Генератор кода действительно работает для вас!

Добавить в текстовый файл

Изменив режим в приведенном выше коде на ForAppending, можно добавить строку в конец текстового файла:

1 Установите FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)

WriteLine метод

Этот метод добавляет строку ввода отдельной строкой к существующему содержимому.

Метод записи

Входная строка добавляется к той же строке, что и существующее содержимое.

Устали искать примеры кода VBA? Попробуйте AutoMacro!

WriteBlankLines

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

Этот код ниже иллюстрирует разницу между различными методами записи:

12345678910111213 Sub WriteMethods ()Dim 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.CloseКонец подписки

И результат:

Программирование на VBA | Генератор кода действительно работает для вас!

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

Если вы хотите вывести диапазон данных из рабочего листа в текстовый файл, вы можете использовать этот код:

12345678910111213141516171819 Подложка OutputToTextFile ()Dim FileName as String, LineText as StringDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'вы можете указать здесь имя текстового файла, который вы хотите создатьОткрыть имя файла для вывода как # 1Установите MyRange = Range ("data") ', предполагается, что у вас есть диапазон данных с именем "data" на вашем листе.Для i = 1 To MyRange.Rows.CountДля j = 1 To MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'создаваемый текстовый файл будет иметь разделитель запятой.Следующий jPrint # 1, LineText 'с использованием команды Write вместо Print приведет к тому, что ваши данные будут заключены в кавычки в выходном текстовом файле.Далее яЗакрыть # 1Конец подписки

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

Вы также можете сохранить свой массив данных в текстовый файл следующим образом:

12345678910111213141516 Подложка SaveArrayToTextFile ()Dim MyArray как вариантDim 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.CloseКонец подписки

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

wave wave wave wave wave