Как создать и записать текстовый файл с помощью vba?

Чтобы создать текст с помощью кода VBA, необходимо использовать метод CreateTextFile. Этот метод позволяет вам указать место, где вы хотите его создать. Этот метод имеет синтаксис, в котором вы можете указать, хотите ли вы перезаписать файл в этом местоположении, и указать, будет ли файл создан как файл Unicode или ASCII.

Создайте текстовый файл с помощью VBA

Используйте следующие шаги:

  1. Во-первых, вам нужно использовать объект FileSystemObject или Folder для использования с этим методом.
    create-a-text-fie-using-vba
  2. После этого вам нужно создать еще один объект с помощью метода CreateTextFile.
    create-text-file-method
  3. В этом коде мы использовали TRUE для перезаписи, если в папке уже есть файл с таким же именем.
  4. В конце, когда вы запустите этот макрос, создайте в папке новый текстовый файл следующим образом.
 Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub

Синтаксис метода CreateTextFile

 CreateTextFile (filename, [ overwrite, [ unicode ]])
  • имя_файла: путь и имя файла, который вы хотите создать.
  • overwrite: логическое значение, определяющее, хотите ли вы перезаписать файл (если он уже существует) (необязательно).
  • unicode: логическое значение, определяющее, создается ли файл как файл Unicode или ASCII (необязательно).

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

Для записи данных в текстовый файл можно использовать два оператора:

  1. Запись: с помощью этого оператора вы можете записать данные в текстовый файл, где между значениями будут запятые, строки в кавычках, а даты — знаки #.
    write-statement
  2. Печать. С помощью этого оператора вы можете записать данные в текстовый файл, который будет выглядеть точно так же, как в электронной таблице Excel.
    print-statement

Теперь мы рассмотрим примеры обоих операторов и поймем, как написать полный код для записи в текстовый файл. Но перед этим вам необходимо разобраться с некоторыми терминами , чтобы писать код так, как вы хотите.

  • Для вывода: вы можете использовать эту команду, если хотите записать или изменить данные в текстовом файле.
  • Для ввода: с помощью этой команды вы можете извлечь данные из текста, но не сможете изменять и добавлять данные в файл.
  • Чтобы добавить: Эта команда поможет вам добавить новые данные в конец текстового файла.
  • FreeFile: вы можете использовать это, чтобы установить номер файла, который не используется для текстового файла, который вы хотите использовать, чтобы вы могли ссылаться на него.

Теперь напишем код для ввода данных в текстовый файл.

  1. Во-первых, вам необходимо объявить переменные, которые будут использоваться в коде.
    declare-variables
  2. После этого вам нужно определить диапазон, который вам нужно записать в текстовый файл. И используйте количество ячеек в диапазоне в качестве счетчика цикла, установив его в переменную.
    define-the-range
  3. Далее вам необходимо задать адрес текстового файла, в который вы хотите добавить данные.
    define-the-address-of-the-text-file
  4. Далее вам нужно объявить команду «FreeFile» в переменной, чтобы получить номер файла.
    freefile-command
  5. Теперь вам нужно создать с помощью команды «Вывод», потому что вам нужно добавить данные в файл.
    output-command
  6. Наконец, вам нужно использовать цикл «Для следующего», чтобы получить значения диапазона одно за другим и добавить их в файл.
    for-next-loop-to-get-values
  7. Кроме того, вам необходимо использовать команду close, чтобы закрыть текстовый файл после добавления в него данных.
    close-command
  8. В конечном итоге, когда вы запускаете этот макрос, он добавляет данные из диапазона A1:A13 в текстовый файл, который вы сохранили по указанному вами пути.
    run-the-macro

Примечание. Обязательно измените путь к текстовому файлу из кода в соответствии с путем, имеющимся в вашей системе.

 Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub