Bu eğitim, VBA kullanarak metin dosyalarına nasıl yazılacağını gösterecektir.
Bir Metin Dosyasına Yaz
Aşağıdaki kodlar, DosyaSistemNesnesi. Kullanmak için VB komut dosyası çalışma zamanı kitaplığına bir başvuru ayarlamanız gerekir.
Yeni Metin Dosyasına Yaz
İle CreateTextFile yöntemi DosyaSistemNesnesi bir metin dosyasına içerik oluşturabilir ve ardından ekleyebilirsiniz:
123456789 | Alt FSOCreateAndWriteToTextFile()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt") olarak ayarlayınFileToCreate.Write "test satırı"FileToCreate.CloseAlt Bitiş |
Lütfen içeriğin tırnak içine alınmayacağını unutmayın.
Mevcut Metin Dosyasına Yaz
Mevcut bir metin dosyasına yazmak için OpenTextFile yöntemi DosyaSistemNesnesi ile birlikte Yazmak için modu.
123456789 | Alt FSOWriteToTextFile()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting) olarak ayarlayınFileToWrite.Write "test satırı"FileToWrite.CloseAlt Bitiş |
Lütfen mevcut bir metin dosyasına yazmak için FileSystemObject'e ihtiyacınız olmadığını unutmayın. Yukarıdaki örnek, aşağıdaki kodda başka bir şekilde gösterilmiştir (Veri Aralığından Metin Dosyasına Kadar bölümündeki diğer örneğe bakın):
123456789 | Alt WriteToTextFile()Dosya Adını Dize Olarak KarartDosyaAdı = "C:\Test\TestFile.txt"Çıktı İçin Dosya Adını #1 Olarak Açın#1, "test satırı" yazdır#1'i kapatAlt Bitiş |
Lütfen Yazdır yerine Yaz komutunu kullanmanın, eklenen içeriğin tırnak içine alınmasına neden olacağını unutmayın. Makronuzda her iki komutun da bulunması
12 | #1, "test satırı #1" yazın#1, "test satırı #2" yazdır |
bunun gibi bir metin dosyasıyla sonuçlanacaktır:
VBA Programlama | Code Generator sizin için çalışıyor!
Metin Dosyasına Ekle
Yukarıdaki koddaki modu ForAppending olarak değiştirerek, metin dosyasının sonuna bir satır eklenebilir:
1 | FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending) olarak ayarlayın |
WriteLine Yöntemi
Bu yöntem, giriş dizesini mevcut içeriğe ayrı bir satır olarak ekler.
Yazma Yöntemi
Giriş dizesi, mevcut içerikle aynı satıra eklenir.
VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!
BoşSatırlar Yaz
Bu yöntem, metin dosyasına yazılacak boş satır sayısını parametre olarak alır.
Aşağıdaki kod, farklı yazma yöntemleri arasındaki farkı gösterir:
12345678910111213 | Alt Yazma Yöntemleri()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending) olarak ayarlayınFileToWrite.Write "test satırı #1"FileToWrite.Write "test satırı #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "test satırı #3"FileToWrite.WriteLine "test satırı #4"FileToWrite.CloseAlt Bitiş |
Ve sonuç:
VBA Programlama | Code Generator sizin için çalışıyor!
Metin Dosyasına Veri Aralığı
Çalışma sayfanızdan bir metin dosyasına bir veri aralığı çıktısı almak istiyorsanız, bu kodu kullanabilirsiniz:
12345678910111213141516171819 | Sub OutputToTextFile()Dosya Adını Dize Olarak Dim, Dize Olarak LineTextAralık Olarak MyRange Dim, i, jFileName = "C:\Test\TestFile.txt" 'burada oluşturmak istediğiniz metin dosyası adını belirtebilirsinizÇıktı İçin Dosya Adını #1 Olarak AçınSet MyRange = Range("data") 'çalışma sayfanızda "data" adında bir veri aralığınız olduğunu varsayari = 1 için MyRange.Rows.Count içinj = 1 için MyRange.Columns.Count'aLineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) 'metin dosyası oluşturulurken virgül ayırıcı olacaktırsonraki jPrint #1, LineText 'Yazdır yerine Yaz komutunu kullanmak, verilerinizin çıktı metin dosyasında tırnak içine alınmasına neden olursonraki ben#1'i kapatAlt Bitiş |
Diziden Metin Dosyasına
Veri dizinizi aşağıdaki gibi bir metin dosyasına da kaydedebilirsiniz:
12345678910111213141516 | Alt SaveArrayToTextFile()Varyant Olarak MyArray DimFSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")MyArray = Array(Array("00", "01")), Array("10", "11"), Array("20", "21"))FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt") olarak ayarlayınn = 0 için UBound(MyArray)FileToCreate.WriteLine MyArray(n)(0) & "," & MyArray(n)(1)SonrakiFileToCreate.CloseAlt Bitiş |