VBA - Zapisz do pliku tekstowego

Ten samouczek pokaże, jak pisać do plików tekstowych za pomocą VBA.

Napisz do pliku tekstowego

Poniższe kody używają Obiekt systemu plików. Aby z niego skorzystać, musisz ustawić odwołanie do biblioteki wykonawczej skryptu VB.

Napisz do nowego pliku tekstowego

Z Utwórz plik tekstowy metoda Obiekt systemu plików możesz stworzyć, a następnie dodać treść do pliku tekstowego:

123456789 Sub FSOCreateAndWriteToTextFile()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")FileToCreate.Write "linia testowa"FileToCreate.CloseNapis końcowy

Należy pamiętać, że treść nie będzie ujęta w cudzysłów.

Napisz do istniejącego pliku tekstowego

Aby pisać do istniejącego pliku tekstowego, możesz użyć Otwórz plik tekstowy metoda Obiekt systemu plików z Do pisania tryb.

123456789 Sub FSOWriteToTextFile()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)FileToWrite.Write "linia testowa"FileToWrite.CloseNapis końcowy

Pamiętaj, że nie musisz koniecznie FileSystemObject zapisywać w istniejącym pliku tekstowym. Powyższy przykład jest pokazany w inny sposób w tym kodzie poniżej (zobacz inny przykład w sekcji Zakres danych do pliku tekstowego):

123456789 Sub WriteToTextFile()Dim nazwa pliku jako ciągFileName = "C:\Test\TestFile.txt"Otwórz nazwę pliku do wyjścia jako nr 1Drukuj #1, "linia testowa"Zamknij #1Napis końcowy

Należy pamiętać, że użycie polecenia Write zamiast Print spowoduje, że dodana treść zostanie ujęta w cudzysłów. Posiadanie obu poleceń w swoim makrze

12 Napisz #1, "linia testowa #1"Drukuj #1, "linia testowa #2"

spowoduje powstanie takiego pliku tekstowego:

Programowanie VBA | Generator kodu działa dla Ciebie!

Dołącz do pliku tekstowego

Zmieniając tryb w powyższym kodzie na ForAppending, można dodać linię na końcu pliku tekstowego:

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

Metoda WriteLine

Ta metoda dołącza ciąg wejściowy jako oddzielny wiersz do istniejącej zawartości.

Metoda zapisu

Ciąg wejściowy jest dodawany w tym samym wierszu, co istniejąca zawartość.

Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!

NapiszPusteLinie

Ta metoda przyjmuje jako parametr liczbę pustych wierszy do zapisania w pliku tekstowym.

Poniższy kod ilustruje różnicę między różnymi metodami zapisu:

12345678910111213 Podrzędne metody zapisu()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)FileToWrite.Write "linia testowa nr 1"FileToWrite.Write "linia testowa #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "linia testowa #3"FileToWrite.WriteLine "linia testowa #4"FileToWrite.CloseNapis końcowy

A wynik:

Programowanie VBA | Generator kodu działa dla Ciebie!

Zakres danych do pliku tekstowego

Jeśli chcesz wyprowadzić zakres danych z arkusza roboczego do pliku tekstowego, możesz użyć tego kodu:

12345678910111213141516171819 Podrzędne wyjście do pliku tekstowego()Dim nazwa_pliku jako ciąg, tekst linii jako ciągDim MyRange As Range, i, jFileName = "C:\Test\TestFile.txt" 'możesz tutaj określić nazwę pliku tekstowego, który chcesz utworzyćOtwórz nazwę pliku do wyjścia jako nr 1Ustaw MyRange = Range("data") 'zakłada się, że masz w arkuszu zakres danych o nazwie "data"For i = 1 To MyRange.Rows.CountDla j = 1 To MyRange.Columns.CountLineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) 'tworzący plik tekstowy będzie miał separator przecinkówNastępny jPrint #1, LineText 'użycie polecenia Write zamiast Print spowoduje, że dane w wyjściowym pliku tekstowym będą ujęte w cudzysłówDalej jaZamknij #1Napis końcowy

Tablica do pliku tekstowego

Możesz także zapisać swoją tablicę danych w pliku tekstowym w następujący sposób:

12345678910111213141516 Sub SaveArrayToTextFile()Dim MyArray jako wariantDim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")MyArray = Array(Array("00", "01"), Array("10", "11"), Array("20", "21"))Ustaw FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")Dla n = 0 To UBound(MyArray)FileToCreate.WriteLine MyArray(n)(0) & "," & MyArray(n)(1)NastępnyFileToCreate.CloseNapis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave