Aşağıda bir programa bakacağız Excel VBA'sı o bir CSV (virgülle ayrılmış değer) metin dosyasına bir Excel aralığı yazar.
Durum:
Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:
1. İlk önce, String türünde myFile adında bir değişken, Range türünde rng adlı bir nesne, Variant türünde cellValue adlı bir değişken, Tamsayı türünde i adlı bir değişken ve Tamsayı türünde j adlı bir değişken tanımlıyoruz. Burada bir Variant değişkeni kullanıyoruz çünkü bir Variant değişkeni herhangi bir değer türünü tutabilir.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Dosyanın tam yolunu ve dosya adını belirtmemiz gerekiyor.
myFile = Application.DefaultFilePath & "\sales.csv"
Not: DefaultFilePath özelliği, varsayılan dosya yolunu döndürür. Varsayılan dosya konumunu değiştirmek için Dosya sekmesinde Seçenekler, Kaydet'e tıklayın.
3. Range nesnesini seçilen aralıkla başlatıyoruz.
Set rng = Seçim
4. Aşağıdaki kod satırını ekleyin:
Çıktı için myFile'ı #1 Olarak Aç
Not: Bu ifade, dosyanın yazılmasına izin verir. Kodumuzun geri kalanında dosyaya #1 olarak başvurabiliriz. Dosya zaten mevcutsa silinecek ve aynı ada sahip yeni bir dosya oluşturulacaktır.
5. Bir Çift Döngü başlatın.
i = 1 için rng.Rows.Count
j = 1 için rng.Columns.Count
Not: rng.Rows.Count, satır sayısını (bu örnekte 17) ve rng.Columns.Count, sütun sayısını (bu örnekte 4) döndürür.
6. Excel VBA, bir hücrenin değerini cellValue değişkenine yazar.
cellValue = rng.Hücreler(i, j).Değer
7. text dosyasına cellValue değerini yazmak için aşağıdaki kod satırlarını ekleyin.
Eğer j = rng.Columns.Count ise
#1, cellValue yazın
Başka
#1, cellValue yazın,
Bitir
Açıklama: If Then Else deyimi nedeniyle, Excel VBA yalnızca j sütun sayısına (bir satırdaki son değer) eşit olduğunda yeni bir satır (Write #1, cellValue) başlatır. Değerleri virgülle ayırmak için Write #1, cellValue, (virgülle) kullanın.
8. Her iki döngüyü de kapatmayı unutmayın.
sonraki j
sonraki ben
9. Dosyayı kapatın.
#1'i kapat
10. Verileri seçin ve sayfadaki komut düğmesine tıklayın.
Sonuç: