Zápis textového souboru VBA | Zápis dat aplikace Excel do textových souborů pomocí kódu VBA
Zápis textového souboru Excel VBA
Ve VBA můžeme otevřít nebo číst nebo zapisovat textový soubor, psát textový soubor znamená data, která máme v listu aplikace Excel a chceme je do textového souboru nebo do souboru poznámkového bloku, existují dvě metody, jedna je pomocí vlastnosti objektu File System objektu VBA a další pomocí metody Open and write ve VBA.
Ve většině korporátních společností se po dokončení zprávy pokusí nahrát zprávu do databáze. K nahrávání do databáze používají k aktualizaci databáze formát „Textové soubory“. Data z Excelu obvykle kopírujeme a vkládáme do textového souboru. Důvod, proč se spoléháme na textové soubory, protože s těmi je velmi snadné pracovat kvůli jejich odlehčeným a jednodušším způsobům. Pomocí kódování VBA můžeme automatizovat úkol kopírování dat ze souboru aplikace Excel do textového souboru. V tomto článku vám ukážeme, jak kopírovat nebo zapisovat data ze souboru aplikace Excel do textového souboru pomocí kódu VBA.
Jak zapisovat data do textových souborů pomocí VBA?
Zápis dat z aplikace Excel do textu je složité kódování a vyžaduje velmi dobrou znalost kódování VBA. Postupujte podle následujících kroků a napište kód VBA ke kopírování dat z aplikace Excel do textového souboru.
Než vám ukážu způsob psaní kódu, dovolte mi vysvětlit, jak otevřít textový soubor pomocí otevřeného příkazu.
Syntaxe otevřeného textového souboru
Otevřete [Cesta k souboru], Pro [Režim], Jako [Číslo souboru]
Cesta k souboru: Cesta k souboru, který se pokoušíme otevřít v počítači.
Režim: Režim je kontrola, kterou můžeme mít nad otevíráním textových souborů. Můžeme mít tři typy kontroly nad textovým souborem.
- Režim zadávání: Toto navrhuje ovládání otevíracího textového souboru pouze pro čtení . Pokud použijeme „Input Mode“, nemůžeme se souborem nic dělat. Můžeme jen číst obsah textového souboru.
- Výstupní režim: Pomocí této možnosti na ni můžeme zapsat obsah. Zde si musíme pamatovat, že všechna existující data budou přepsána. Musíme si tedy dávat pozor na možnou ztrátu starých dat.
- Append Mode: Tento režim je zcela opačný než režim OutPut. Pomocí této metody můžeme skutečně zapsat nová data na konec existujících dat v souboru.
Číslo souboru: Toto spočítá číslo textového souboru všech otevřených textových souborů. Rozpozná otevřená čísla souborů v celočíselných hodnotách od 1 do 511. Přiřazení čísla souboru je obtížné a vede k velkému zmatku. K tomu můžeme použít bezplatnou funkci Soubor.
Volný soubor vrací jedinečné číslo pro otevřené soubory. Tímto způsobem můžeme přiřadit jedinečné číslo souboru bez jakýchkoli duplicitních hodnot.
Tuto šablonu pro psaní textových souborů VBA si můžete stáhnout zde - Šablona pro psaní textových souborů VBAPříklad č. 1
Postupujte podle níže uvedených kroků a vytvořte nový textový soubor tak, že napíšete kód.
Předpokládejme, že jste v úložišti počítače již měli textový soubor s názvem „Hello.txt“, a my vám ukážeme, jak do něj zapsat data.
Krok 1: Deklarovat proměnnou
Deklarujte proměnnou tak, aby držela cestu k souboru jako řetězec.
Kód:
Sub TextFile_Example1 () Dim Path as String End Sub
Krok 2: Určete číslo souboru
Chcete-li zjistit, na které číslo souboru odkazujeme, deklarujte ještě jednu proměnnou jako celé číslo.
Kód:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub
Krok 3: Přiřaďte cestu k souboru
Nyní proměnné Path přiřaďte cestu k souboru s názvem souboru.
Kód:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Změňte cestu podle svého požadavku End Sub
Krok 4: Přiřaďte funkci volného souboru
Nyní proměnné File Number přiřaďte funkci „Free File“ pro uložení jedinečného čísla souboru.
Kód:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Změňte cestu podle svého požadavku FileNumber = FreeFile End Sub
Krok 5: Otevřete textový soubor
Nyní musíme otevřít textový soubor, abychom s ním mohli pracovat. Jak jsem vysvětlil, k otevření textového souboru musíme použít příkaz OPEN.
Krok 6: Použijte metodu tisku / zápisu
Jakmile je soubor otevřen, musíme do něj něco napsat. Pro zápis do textového souboru musíme použít metodu „Write“ nebo „Print“.
Kód:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Změňte cestu podle svého požadavku FileNumber = FreeFile Otevřená cesta pro výstup jako FileNumber Tisk #FileNumber, " Vítejte "Print #FileNumber," na "Print #FileNumber," VBA "End Sub
Nejprve musíme uvést číslo souboru (zde jsme soubor přiřadili pomocí proměnné „FileNumber“), pak musíme přidat obsah, který chceme přidat do textového souboru.
Krok 7: Uložte a zavřete textový soubor
Jakmile je obsah zapsán do textového souboru, musíme textový soubor uložit a zavřít.
Kód:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Změňte cestu podle svého požadavku FileNumber = FreeFile Otevřená cesta pro výstup jako FileNumber Tisk #FileNumber, " Vítejte "Tisk #FileNumber," na "Tisk #FileNumber," VBA "Zavřít FileNumber End Sub
Nyní spusťte tento kód ručně nebo pomocí klávesové zkratky excel klávesy F5, zapíše uvedený obsah do uvedeného textového souboru.
Příklad č. 2
Nyní uvidíme, jak zapsat data listu aplikace Excel do textového souboru.
Pro tento příklad jsem vytvořil jednoduchá data v aplikaci Excel, jak je uvedeno níže.
Krok 1: S pokračováním starého příkladu definujte další dvě proměnné jako Integer, abyste našli poslední řádek a poslední sloupec.
Kód:
Sub TextFile_Example2 () Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub
Krok 2: Najděte poslední použitý řádek a sloupec v listu.
Krok 3: Nyní přiřaďte cestu k souboru a číslo souboru.
Krok 4: Nyní použijte příkaz OPEN k otevření textového souboru.
Krok 5: Musíme procházet řádky a sloupce, takže deklarujte další dvě proměnné jako celé číslo.
Krok 6: Nyní otevřete smyčku, abyste procházeli řádkem (pro další smyčku ve VBA)
Krok 7: Nyní, abyste procházeli sloupci, otevřete ještě jednu smyčku uvnitř stávající smyčky.
Krok 8: Musíme napsat stejný řádek dat, dokud nedosáhne posledního sloupce. Pro toto platí IF prohlášení ve VBA.
Krok 9: Nyní uložte a zavřete textový soubor.
Tento kód zapíše podrobnosti do textového souboru, ale k otevření textového souboru po jeho napsání musíme použít následující kód.
Kód:
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 = Listy ("Text"). Buňky (1, Columns.Count) .End (xlToLeft) .Column Path = "D: \ Excel Files \ VBA File \ Hello.txt" FileNumber = FreeFile Otevřená cesta pro výstup jako 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 "& cesta, vbNormalFocus End Sub
Spusťte kód pomocí klávesy F5 nebo ručně, zkopíruje data jako níže.