Как создать и записать текстовый файл с помощью vba?
Чтобы создать текст с помощью кода VBA, необходимо использовать метод CreateTextFile. Этот метод позволяет вам указать место, где вы хотите его создать. Этот метод имеет синтаксис, в котором вы можете указать, хотите ли вы перезаписать файл в этом местоположении, и указать, будет ли файл создан как файл Unicode или ASCII.
Создайте текстовый файл с помощью VBA
Используйте следующие шаги:
- Во-первых, вам нужно использовать объект FileSystemObject или Folder для использования с этим методом.
- После этого вам нужно создать еще один объект с помощью метода CreateTextFile.
- В этом коде мы использовали TRUE для перезаписи, если в папке уже есть файл с таким же именем.
- В конце, когда вы запустите этот макрос, создайте в папке новый текстовый файл следующим образом.
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
Для записи данных в текстовый файл можно использовать два оператора:
- Запись: с помощью этого оператора вы можете записать данные в текстовый файл, где между значениями будут запятые, строки в кавычках, а даты — знаки #.
- Печать. С помощью этого оператора вы можете записать данные в текстовый файл, который будет выглядеть точно так же, как в электронной таблице Excel.
Теперь мы рассмотрим примеры обоих операторов и поймем, как написать полный код для записи в текстовый файл. Но перед этим вам необходимо разобраться с некоторыми терминами , чтобы писать код так, как вы хотите.
- Для вывода: вы можете использовать эту команду, если хотите записать или изменить данные в текстовом файле.
- Для ввода: с помощью этой команды вы можете извлечь данные из текста, но не сможете изменять и добавлять данные в файл.
- Чтобы добавить: Эта команда поможет вам добавить новые данные в конец текстового файла.
- FreeFile: вы можете использовать это, чтобы установить номер файла, который не используется для текстового файла, который вы хотите использовать, чтобы вы могли ссылаться на него.
Теперь напишем код для ввода данных в текстовый файл.
- Во-первых, вам необходимо объявить переменные, которые будут использоваться в коде.
- После этого вам нужно определить диапазон, который вам нужно записать в текстовый файл. И используйте количество ячеек в диапазоне в качестве счетчика цикла, установив его в переменную.
- Далее вам необходимо задать адрес текстового файла, в который вы хотите добавить данные.
- Далее вам нужно объявить команду «FreeFile» в переменной, чтобы получить номер файла.
- Теперь вам нужно создать с помощью команды «Вывод», потому что вам нужно добавить данные в файл.
- Наконец, вам нужно использовать цикл «Для следующего», чтобы получить значения диапазона одно за другим и добавить их в файл.
- Кроме того, вам необходимо использовать команду close, чтобы закрыть текстовый файл после добавления в него данных.
- В конечном итоге, когда вы запускаете этот макрос, он добавляет данные из диапазона A1:A13 в текстовый файл, который вы сохранили по указанному вами пути.
Примечание. Обязательно измените путь к текстовому файлу из кода в соответствии с путем, имеющимся в вашей системе.
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