Ez az oktatóanyag bemutatja, hogyan kell szöveges fájlokba írni a VBA segítségével.
Írjon szövegfájlba
Az alábbi kódok a FileSystemObject. A használatához be kell állítania egy hivatkozást a VB script futásidejű könyvtárára.
Írjon új szövegfájlba
A … val CreateTextFile a metódusa FileSystemObject létrehozhat, majd hozzáadhat tartalmat egy szöveges fájlhoz:
123456789 | Sub FSOCreateAndWriteToTextFile ()Halvány FSO új fájlrendszer -objektumkéntSet FSO = CreateObject ("Scripting.FileSystemObject")Állítsa be a FileToCreate = FSO.CreateTextFile fájlt ("C: \ Test \ TestFile.txt")FileToCreate.Write "teszt sor"FileToCreate.CoseEnd Sub |
Kérjük, vegye figyelembe, hogy a tartalom nem kerül idézőjelek közé.
Írjon a meglévő szövegfájlba
Ha meglévő szöveges fájlba szeretne írni, használja a OpenTextFile a metódusa FileSystemObject val vel ForWriting számára mód.
123456789 | FSOWriteToTextFile () alHalvány FSO új fájlrendszer -objektumkéntSet FSO = CreateObject ("Scripting.FileSystemObject")Állítsa be a FileToWrite = FSO.OpenTextFile fájlt ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "teszt sor"FileToWrite.CloseEnd Sub |
Kérjük, vegye figyelembe, hogy nem feltétlenül szükséges a FileSystemObject, hogy meglévő szöveges fájlba írjon. A fenti példa más módon jelenik meg az alábbi kódban (lásd az Adattartománytól a szövegfájlig című szakasz másik példáját):
123456789 | Sub WriteToTextFile ()Fájlnév halványítása karakterlánckéntFileName = "C: \ Test \ TestFile.txt"Nyissa meg a fájlnevet a kimenethez #11. nyomtatás, "tesztvonal"Bezárás #1End Sub |
Kérjük, vegye figyelembe, hogy az Írás parancs használata a Nyomtatás helyett azt eredményezi, hogy a hozzáadott tartalmat idézőjelek közé kell zárni. Mindkét parancs a makróban
12 | Írja az 1. számot, "teszt sor #1"1. nyomtatás, "2. tesztvonal" |
ilyen szövegfájlt eredményez:
VBA programozás | A kódgenerátor működik az Ön számára!
Hozzáfűzés a szövegfájlhoz
Ha a fenti kód módját ForAppending -re változtatja, egy sor hozzáadható a szövegfájl végéhez:
1 | Állítsa be a FileToWrite = FSO.OpenTextFile fájlt ("C: \ Test \ TestFile.txt", ForAppending) |
WriteLine módszer
Ez a módszer a beviteli karakterláncot külön sorként fűzi a meglévő tartalomhoz.
Írási módszer
A beviteli karakterlánc ugyanahhoz a sorhoz fűződik, mint a meglévő tartalom.
Unod már a VBA kódpéldák keresését? Próbálja ki az AutoMacro -t!
WriteBlankLines
Ez a módszer paraméterként figyelembe veszi a szövegfájlba írandó üres sorok számát.
Ez az alábbi kód szemlélteti a különbséget a különböző írási módszerek között:
12345678910111213 | Sub WriteMethods ()Halvány FSO új fájlrendszer -objektumkéntSet FSO = CreateObject ("Scripting.FileSystemObject")Állítsa be a FileToWrite = FSO.OpenTextFile fájlt ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "teszt sor #1"FileToWrite.Write "2. teszt sor"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "3. tesztsor"FileToWrite.WriteLine "tesztsor #4"FileToWrite.CloseEnd Sub |
És az eredmény:
VBA programozás | A kódgenerátor működik az Ön számára!
Adattartomány szöveges fájlba
Ha adattartományt szeretne kiadni a munkalapról egy szöveges fájlba, akkor ezt a kódot használhatja:
12345678910111213141516171819 | Sub OutputToTextFile ()Fájlnév halványítása karakterláncként, soros szöveg szövegkéntDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'itt adhatja meg a létrehozni kívánt szövegfájl nevétNyissa meg a fájlnevet a kimenethez #1A MyRange = Range ("data") beállítása 'feltételezi, hogy a munkalapon van egy "data" nevű adattartományI = 1 esetén MyRange.Rows.CountHa j = 1 A MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) 'a létrehozott szövegfájl vesszővel elválasztottKövetkező jNyomtatás #1, LineText 'az Írás paranccsal a Nyomtatás helyett azt eredményezi, hogy az adatok idézőjelben vannak a kimeneti szövegfájlbanKövetkező iBezárás #1End Sub |
Tömb szövegfájlba
Az adatok tömbjét az alábbi szövegfájlba is mentheti:
12345678910111213141516 | Sub SaveArrayToTextFile ()Dim MyArray mint változatHalvány FSO új fájlrendszer -objektumkéntSet FSO = CreateObject ("Scripting.FileSystemObject")Saját tömb = tömb (tömb ("00", "01"), tömb ("10", "11"), tömb ("20", "21"))Állítsa be a FileToCreate = FSO.CreateTextFile fájlt ("C: \ Test \ TestFile.txt")N = 0 esetén UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)KövetkezőFileToCreate.CloseEnd Sub |