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

Този урок ще покаже как да пишете в текстови файлове с помощта на VBA.

Пишете в текстов файл

Кодовете по -долу използват FileSystemObject. За да го използвате, ще трябва да зададете препратка към библиотеката по време на изпълнение на VB скрипта.

Пишете в нов текстов файл

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

123456789 Под 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"Отворете FileName за извеждане като #1Печат #1, "тестова линия"Затворете #1End Sub

Моля, обърнете внимание, че използването на команда Write вместо Print ще доведе до добавяне на съдържание, оградено с кавички. Имат и двете команди във вашия макрос

12 Напишете #1, "тест ред #1"Отпечатайте #1, "тестова линия #2"

ще доведе до текстов файл като този:

VBA програмиране | Code Generator работи за вас!

Добавяне към текстов файл

Чрез промяна на режима в горния код на ForAppending може да се добави ред в края на текстовия файл:

1 Задайте FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)

Метод WriteLine

Този метод добавя входния низ като отделен ред към съществуващото съдържание.

Метод на писане

Входният низ е добавен на същия ред като съществуващото съдържание.

Уморени ли сте от търсене на примери за VBA код? Опитайте AutoMacro!

WriteBlankLines

Този метод приема броя на празните редове, които трябва да бъдат записани в текстовия файл като параметър.

Този код по -долу илюстрира разликата между различните методи на запис:

12345678910111213 Sub WriteMethods ()Затъмнете 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 програмиране | Code Generator работи за вас!

Обхват на данни до текстов файл

Ако искате да изведете диапазон от данни от работния си лист в текстов файл, можете да използвате този код:

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

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

Можете също да запишете вашия масив от данни в текстов файл по следния начин:

12345678910111213141516 Sub SaveArrayToTextFile ()Dim MyArray като вариантЗатъмнете FSO като нов FileSystemObjectЗадайте FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("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