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 |