VBA Писане на текстов файл | Напишете данни на Excel в текстови файлове, като използвате VBA код

Excel VBA Напишете текстов файл

Във VBA можем да отворим или прочетем или напишем текстов файл, да напишем текстов файл означава данните, които имаме в Excel лист и ги искаме в текстов файл или файл на бележник, има два метода, един от които е използването на свойството на обект на файлова система на VBA и друго е чрез използване на метода Open and write в VBA.

В повечето корпоративни компании, след като отчетът е финализиран, те гледат да го качат в базата данни. За качване в базата данни те използват формата „Текстови файлове“ за актуализиране на базата данни. Обикновено копираме данните от Excel и ги поставяме в текстов файл. Причината, поради която разчитаме на текстови файлове, защото с тях е много лесно да се работи, поради леките и опростени начини. Използвайки VBA кодиране, можем да автоматизираме задачата за копиране на данни от Excel файл в текстов файл. В тази статия ще ви покажем как да копирате или записвате данни от файл на Excel в текстов файл с помощта на VBA код.

Как да записвам данни в текстови файлове с помощта на VBA?

Записването на данни от Excel в текст е сложно кодиране и изисква много добро познаване на VBA кодирането. Следвайте стъпките по-долу, за да напишете кода на VBA, за да копирате данни от Excel в текстов файл.

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

Синтаксис на отворен текстов файл

Отворете [Път на файла], За [Режим], Като [Номер на файла]

Файлов път: Пътят на файла, който се опитваме да отворим на компютъра.

Режим: Режимът е контролът, който можем да имаме върху отварянето на текстови файлове. Можем да имаме три вида контрол върху текстовия файл.

  • Режим на въвеждане: Това предполага контрол „ Само за четене “ на отварящия се текстов файл. Ако използваме “Input Mode”, не можем да направим нищо с файла. Можем просто да прочетем съдържанието на текстовия файл.
  • Изходен режим: Използвайки тази опция, можем да напишем съдържанието върху нея. Тук трябва да запомним, че всички съществуващи данни ще бъдат заменени. И така, трябва да се пазим от възможната загуба на стари данни.
  • Режим на добавяне: Този режим е напълно противоположен на режима OutPut. Използвайки този метод, ние всъщност можем да запишем новите данни в края на съществуващите данни във файла.

Номер на файла: Това ще отчита номера на текстовия файл на всички отворени текстови файлове. Това ще разпознае отворените номера на файлове в цели числа от 1 до 511. Присвояването на номера на файла е сложно и води до много объркване. За това можем да използваме безплатната функция File.

Free File връща уникалния номер за отворените файлове. По този начин можем да присвоим уникалния номер на файла без никакви дублиращи се стойности.

Можете да изтеглите този шаблон за писане на текстов файл на VBA от тук - Шаблон за текстов файл на VBA за писане

Пример # 1

Следвайте стъпките по-долу, за да напишете кода, за да създадете нов текстов файл.

Да предположим, че вече сте имали текстов файл с име „Hello.txt“ в паметта на вашия компютър и ние ще ви покажем как да запишете данните в него.

Стъпка 1: Деклариране на променлива

Декларирайте променливата, която да държи пътя на файла като String.

Код:

 Sub TextFile_Example1 () Затъмняване на пътя като край на низ 

Стъпка 2: Определете номера на файла

За да определим кой номер на файл имаме предвид, да декларираме още една променлива като Integer.

Код:

 Подтекст TextFile_Example1 () Затъмняване на път като низ Dim DimNumber като цяло число Край Под 

Стъпка 3: Присвояване на файлов път

Сега за променливата Path задайте пътя на файла с име на файл.

Код:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Променете пътя според вашето изискване End Sub 

Стъпка 4: Присвояване на безплатна файлова функция

Сега за променливата File Number задайте функцията “Free File” за съхраняване на уникален номер на файл.

Код:

 Sub TextFile_Example1 () Затъмнете пътя като низ Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Променете пътя според вашето изискване FileNumber = FreeFile End Sub 

Стъпка 5: Отворете текстов файл

Сега трябва да отворим текстовия файл, за да работим с него. Както обясних, трябва да използваме оператора OPEN, за да отворим текстовия файл.

Стъпка 6: Използвайте метод Печат / запис

След като файлът се отвори, трябва да напишем нещо в него. За да напишем в текстовия файл, трябва да използваме или метода „Писане“ или „Печат“.

Код:

 Sub TextFile_Example1 () Затъмнете пътя като низ Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Променете пътя според вашето изискване FileNumber = FreeFile Open Path for Output As FileNumber Print #FileNumber, " Добре дошли "Print #FileNumber," to "Print #FileNumber," VBA "End Sub 

First, we need to mention the file number (here we have assigned the file through the “FileNumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

 Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:\Excel Files\VBA File\Hello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub 

Now, run the code this manually or through shortcut excel key F5, it will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.