Fișier text de scriere VBA | Scrieți date Excel în fișiere text folosind codul VBA

Fișier text de scriere VBA Excel

În VBA putem deschide sau citi sau scrie un fișier text, pentru a scrie un fișier text înseamnă datele pe care le avem într-o foaie Excel și le dorim într-un fișier text sau un fișier notepad, există două metode de făcut, una este prin folosind proprietatea obiectului File System al VBA și alta este folosind metoda Open și write în VBA.

În majoritatea companiilor corporative, odată ce raportul este finalizat, ei caută să încarce raportul în baza de date. Pentru a încărca în baza de date, utilizează formatul „Fișiere text” pentru a actualiza baza de date. De obicei copiem datele din Excel și le lipim într-un fișier text. Motivul pentru care ne bazăm pe fișiere text, deoarece acestea sunt foarte ușor de lucrat datorită modurilor lor ușoare și mai simple. Prin utilizarea codificării VBA putem automatiza sarcina de copiere a datelor din fișierul Excel în fișierul text. În acest articol, vă vom arăta cum să copiați sau să scrieți date din fișierul Excel în fișier text folosind codul VBA.

Cum se scrie date în fișiere text folosind VBA?

Scrierea datelor de la Excel la text este o codificare complexă și necesită cunoștințe foarte bune despre codarea VBA. Urmați pașii de mai jos pentru a scrie codul VBA pentru a copia date din Excel într-un fișier text.

Înainte de a vă arăta cum să scrieți codul, permiteți-mi să explic cum să deschideți fișierul text folosind o declarație deschisă.

Sintaxa fișierului text deschis

Deschideți [Cale fișier], Pentru [Mod], Ca [Număr fișier]

Calea fișierului: calea fișierului pe care încercăm să îl deschidem pe computer.

Mod: Modul este controlul pe care îl putem avea asupra deschiderii fișierelor text. Putem avea trei tipuri de control asupra fișierului text.

  • Mod de intrare: Aceasta sugerează controlul „ Doar citire ” al fișierului text de deschidere. Dacă folosim „Mod de intrare” nu putem face nimic cu fișierul. Putem citi doar conținutul fișierului text.
  • Mod de ieșire: folosind această opțiune putem scrie conținutul pe ea. Ideea de care trebuie să ne amintim aici este că toate datele existente vor fi suprascrise. Deci, trebuie să ne ferim de posibila pierdere a datelor vechi.
  • Mod adăugare : acest mod este complet opus modului OutPut. Folosind această metodă putem scrie de fapt noile date la sfârșitul datelor existente în fișier.

Număr fișier: Acesta va conta numărul fișierului text al tuturor fișierelor text deschise. Aceasta va recunoaște numerele de fișiere deschise în valori întregi de la 1 la 511. Atribuirea numărului de fișier este dificilă și duce la o mulțime de confuzie. Pentru aceasta, putem folosi funcția File gratuit.

Free File returnează numărul unic pentru fișierele deschise. Astfel putem atribui numărul de fișier unic fără niciun fel de valori duplicat.

Puteți descărca acest șablon de fișier text de scriere VBA aici - Șablon de fișier text de scriere VBA

Exemplul nr. 1

Urmați pașii de mai jos pentru a scrie codul pentru a crea un fișier text nou.

Să presupunem că ați avut deja un fișier text numit „Hello.txt” în spațiul de stocare al computerului și vă vom arăta cum să scrieți datele în acesta.

Pasul 1: declarați variabilă

Declarați variabila pentru a menține calea fișierului ca Șir.

Cod:

 Sub TextFile_Example1 () Atenuați calea ca sfârșit de șir Sub 

Pasul 2: Determinați numărul fișierului

Pentru a determina ce număr de fișier ne referim la a declara încă o variabilă ca Număr întreg.

Cod:

 Sub TextFile_Example1 () Dim Path Ca șir Dim File File Number Integer End Sub 

Pasul 3: Alocați calea fișierului

Acum, pentru variabila Path atribuiți calea fișierului cu un nume de fișier.

Cod:

 Sub TextFile_Example1 () Dim Path as String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Schimbați calea conform cerințelor dvs. End Sub 

Pasul 4: Alocați funcția de fișier gratuit

Acum, pentru variabila Număr fișier, atribuiți funcția „Fișier gratuit” pentru a stoca un număr unic de fișier.

Cod:

 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 End Sub 

Step 5: Open Text File

Now we need to open the text file to work with it. As I have explained we need to use the OPEN statement to open the text file.

Step 6: Use Print/Write Method

Once the File is opened we need to write something in it. To write in the text file we need to use either the “Write” or “Print” method.

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" 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.