VBA - zápis do textového súboru

Tento tutoriál ukáže, ako písať do textových súborov pomocou jazyka VBA.

Napíšte do textového súboru

Nasledujúce kódy používajú príponu FileSystemObject. Aby ste ho mohli používať, budete musieť nastaviť odkaz na run-time knižnicu VB skriptov.

Napíšte do nového textového súboru

S CreateTextFile metóda FileSystemObject môžete vytvoriť a potom pridať obsah do textového súboru:

123456789 Sub FSOCreateAndWriteToTextFile ()Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "test line"FileToCreate.CloseKoniec pod

Upozorňujeme, že obsah nebude uzavretý v úvodzovkách.

Zapíšte do existujúceho textového súboru

Na zápis do existujúceho textového súboru môžete použiť OpenTextFile metóda FileSystemObject s ForWriting režim.

123456789 Sub FSOWriteToTextFile ()Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "testovací riadok"FileToWrite.CloseKoniec pod

Upozorňujeme, že na zápis do existujúceho textového súboru nie je nevyhnutne potrebný program FileSystemObject. Vyššie uvedený príklad je v tomto kóde nižšie zobrazený iným spôsobom (pozri ďalší príklad v časti Rozsah údajov v textovom súbore):

123456789 Sub WriteToTextFile ()Dim FileName as StringFileName = "C: \ Test \ TestFile.txt"Otvorte FileName pre výstup ako #1Vytlačte č. 1, „testovací riadok“Zatvorte #1Koniec pod

Upozorňujeme, že použitie príkazu Write namiesto Print bude mať za následok pridanie obsahu do úvodzoviek. Mať v makre oba príkazy

12 Napíšte č. 1, „testovací riadok č. 1“Vytlačte č. 1, „testovací riadok č. 2“

výsledkom bude textový súbor takto:

Programovanie VBA | Generátor kódu pracuje za vás!

Pripojiť k textovému súboru

Zmenou režimu vo vyššie uvedenom kóde na ForAppending je možné na koniec textového súboru pridať riadok:

1 Nastaviť FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)

Metóda WriteLine

Táto metóda pripája vstupný reťazec k existujúcemu obsahu ako samostatný riadok.

Metóda zápisu

Vstupný reťazec je pripojený k rovnakému riadku ako existujúci obsah.

Ste unavení z hľadania príkladov kódu VBA? Skúste AutoMacro!

WriteBlankLines

Táto metóda berie ako parameter počet prázdnych riadkov, ktoré sa majú zapísať do textového súboru.

Tento kód nižšie ilustruje rozdiel medzi rôznymi metódami zápisu:

12345678910111213 Podpisové metódy zápisu ()Dim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")Nastaviť FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "testovací riadok č. 1"FileToWrite.Write "testovací riadok č. 2"FileToWrite.WriteBlankLines (3)Testovací riadok č. 3 FileToWrite.WriteLineTestovací riadok č. 4 FileToWrite.WriteLineFileToWrite.CloseKoniec pod

A výsledok:

Programovanie VBA | Generátor kódu pracuje za vás!

Rozsah údajov do textového súboru

Ak chcete preniesť rozsah údajov z pracovného hárka do textového súboru, môžete použiť tento kód:

12345678910111213141516171819 Sub OutputToTextFile ()Dim FileName ako reťazec, LineText ako reťazecDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" "tu môžete zadať názov textového súboru, ktorý chcete vytvoriťOtvorte FileName pre výstup ako #1Nastaviť MyRange = rozsah („údaje“) ', predpokladá to, že máte v pracovnom hárku rozsah údajov s názvom „údaje“Pre i = 1 do MyRange.Rows.CountPre j = 1 do MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'vytváranie textového súboru bude mať oddeľovač čiarokĎalej jTlač #1, LineText 'pomocou príkazu Write namiesto Print spôsobí, že vaše údaje budú vo výstupnom textovom súbore v úvodzovkáchĎalej iZatvorte #1Koniec pod

Pole do textového súboru

Svoje pole údajov môžete uložiť aj do textového súboru takto:

12345678910111213141516 Sub SaveArrayToTextFile ()Dim MyArray ako variantDim FSO ako nový FileSystemObjectNastaviť FSO = CreateObject ("Scripting.FileSystemObject")MyArray = pole (pole („00“, „01“), pole („10“, „11“), pole („20“, „21“))Nastaviť FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Pre n = 0 až UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)ĎalšieFileToCreate.CloseKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave