Textový súbor VBA | Zápis údajov programu Excel do textových súborov pomocou kódu VBA

Textový súbor Excel VBA

Vo VBA môžeme otvoriť alebo prečítať alebo napísať textový súbor, napísať textový súbor znamená údaje, ktoré máme v excelovom hárku a chceme ich do textového súboru alebo do súboru poznámkového bloku. Existujú dva spôsoby, jeden je pomocou vlastnosti objektu Súborový systém VBA a ďalším je použitie metódy Open and write vo VBA.

Vo väčšine korporátnych spoločností sa po dokončení správy snažia správu nahrať do databázy. Na nahrávanie do databázy používajú na aktualizáciu databázy formát „Textové súbory“. Údaje zvyčajne skopírujeme z programu Excel a prilepíme do textového súboru. Dôvod, prečo sa spoliehame na textové súbory, pretože s nimi je veľmi ľahké pracovať kvôli ich ľahkému a jednoduchšiemu spôsobu. Použitím kódovania VBA môžeme automatizovať úlohu kopírovania údajov zo súboru programu Excel do textového súboru. V tomto článku si ukážeme, ako kopírovať alebo zapisovať údaje zo súboru programu Excel do textového súboru pomocou kódu VBA.

Ako zapisovať údaje do textových súborov pomocou VBA?

Zápis dát z programu Excel do textu je zložité kódovanie a vyžaduje veľmi dobrú znalosť kódovania VBA. Podľa nasledujúcich pokynov napíšete kód VBA na kopírovanie údajov z programu Excel do textového súboru.

Než vám ukážem spôsob, ako napísať kód, dovoľte mi vysvetliť, ako otvoriť textový súbor pomocou príkazu open.

Syntax otvoreného textového súboru

Otvorte [Cesta k súboru], Pre [Režim], Ako [Číslo súboru]

Cesta k súboru: Cesta k súboru, ktorý sa pokúšame otvoriť v počítači.

Režim: Režim je kontrola, ktorú môžeme mať nad otváraním textových súborov. Môžeme mať tri typy kontroly nad textovým súborom.

  • Režim zadávania: Navrhuje sa kontrola úvodného textového súboru „ iba na čítanie “. Ak použijeme režim vstupu, nemôžeme so súborom nič robiť. Môžeme si len prečítať obsah textového súboru.
  • Režim výstupu: Pomocou tejto možnosti na ňu môžeme zapísať obsah. Bod, ktorý si tu musíme pamätať, je, že všetky existujúce údaje budú prepísané. Musíme si preto dať pozor na možnú stratu starých údajov.
  • Append Mode: Tento režim je úplne opačný k režimu OutPut. Pomocou tejto metódy môžeme skutočne zapísať nové údaje na koniec existujúcich údajov v súbore.

Číslo súboru: Týmto sa spočíta číslo textového súboru všetkých otvorených textových súborov. Toto rozpozná otvorené čísla súborov v celočíselných hodnotách od 1 do 511. Priradenie čísla súboru je zložité a vedie k mnohým nejasnostiam. K tomu môžeme využiť bezplatnú funkciu Súbor.

Free File vráti jedinečné číslo pre otvorené súbory. Týmto spôsobom môžeme priradiť jedinečné číslo súboru bez akýchkoľvek duplicitných hodnôt.

Túto šablónu na zápis textových súborov VBA si môžete stiahnuť tu - Šablóna na písanie textových súborov VBA

Príklad č

Podľa nasledujúcich pokynov napíšte kód a vytvorte nový textový súbor.

Predpokladajme, že ste v úložisku počítača už mali textový súbor s názvom „Hello.txt“ a ukážeme vám, ako doň zapísať údaje.

Krok 1: Deklarujte premennú

Deklarujte premennú, ktorá bude mať cestu k súboru ako reťazec.

Kód:

 Sub TextFile_Example1 () Dim cesta ako reťazec End Sub 

Krok 2: Určite číslo súboru

Aby sme určili, na ktoré číslo súboru odkazujeme, deklarujeme ešte jednu premennú ako Celé číslo.

Kód:

 Sub TextFile_Example1 () Stlmiť cestu ako reťazec Stlmiť číslo súboru ako celé číslo Koniec Sub 

Krok 3: Priraďte cestu k súboru

Teraz pre premennú Cesta priraďte cestu k súboru s názvom súboru.

Kód:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmeňte cestu podľa svojich požiadaviek End Sub 

Krok 4: Priradenie funkcie voľných súborov

Teraz pre premennú File Number priraďte funkciu „Free File“ na uloženie jedinečného čísla súboru.

Kód:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmeňte cestu podľa svojich požiadaviek FileNumber = FreeFile End Sub 

Krok 5: Otvorte textový súbor

Teraz musíme otvoriť textový súbor, aby sme s ním mohli pracovať. Ako som už vysvetlil, na otvorenie textového súboru musíme použiť príkaz OPEN.

Krok 6: Použite metódu tlače / zápisu

Po otvorení súboru musíme do neho niečo napísať. Na zápis do textového súboru musíme použiť buď metódu „Write“, alebo „Print“.

Kód:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Zmeňte cestu podľa svojich požiadaviek FileNumber = FreeFile Otvorená cesta pre výstup ako FileNumber Tlač #FileNumber, " Vitajte „Print #FileNumber“ na „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.