Excel VBA kullanarak Sayfaları İçe Aktarma - Kolay Excel Makroları

İçindekiler

Aşağıda bir programa bakacağız Excel VBA'sı o sayfaları diğer Excel dosyalarından tek bir Excel dosyasına aktarır.

Book4.xlsx, Book5.xlsx'i indirin ve bunları "C:\test\" klasörüne ekleyin

Durum:

Komut düğmesine aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, String türünde iki değişken, bir Çalışma Sayfası nesnesi ve bir Tamsayı türünde bir değişken tanımlıyoruz.

Dim dizini As String, dosyaAdı As String, sayfa As Çalışma Sayfası, toplam As Integer

2. Ekran güncellemeyi ve uyarıları görüntülemeyi kapatın.

Application.ScreenUpdating = Yanlış
Application.DisplayAlerts = Yanlış

3. Değişken dizini başlatın. İlk *.xl?? dosyasını bulmak için Dir işlevini kullanırız. Bu dizinde saklanan dosya.

dizin = "c:\test\"
dosyaAdı = Dir(dizin & "*.xl??")

Not: Dir işlevi, tüm farklı Excel dosyalarını aramak için birden çok karakter (*) ve tek karakter (?) joker karakterlerinin kullanımını destekler.

4. fileName değişkeni artık dizinde bulunan ilk Excel dosyasının adını tutar. Do while Döngüsü ekleyin.

Dosya Adı "" iken yapın
Döngü

Aşağıdaki kod satırlarını (5, 6, 7 ve 8'de) döngüye ekleyin.

5. Çalışma sayfalarını kapalı Excel dosyalarından kopyalamanın basit bir yolu yoktur. Bu nedenle Excel dosyasını açıyoruz.

Workbooks.Open (dizin ve dosyaAdı)

6. Sayfaları Excel dosyasından import-sheet.xlsm dosyasına aktarın.

Çalışma Kitaplarındaki (dosyaadı) Her sayfa için. Çalışma Sayfaları
toplam = Çalışma Kitapları("import-sheets.xlsm").Worksheets.count
Çalışma Kitapları(dosyaAdı).Çalışma sayfaları(sayfa.Adı).Kopyala _
after:=Çalışma Kitapları("import-sheets.xlsm").Çalışma sayfaları(toplam)
Sonraki sayfa

Açıklama: total değişkeni, import-sheet.xlsm'nin toplam çalışma sayfası sayısını takip eder. Her çalışma sayfasını kopyalamak ve import-sheets.xlsm dosyasının son çalışma sayfasından sonra yapıştırmak için Worksheet nesnesinin Copy yöntemini kullanırız.

7. Excel dosyasını kapatın.

Çalışma Kitapları(dosyaAdı).Kapat

8. Dir işlevi özel bir işlevdir. Diğer Excel dosyalarını almak için Dir işlevini tekrar argüman olmadan kullanabilirsiniz.

dosyaAdı = Dir()

Not: Daha fazla dosya adı eşleşmediğinde, Dir işlevi sıfır uzunluklu bir dize ("") döndürür. Sonuç olarak, Excel VBA Do while döngüsünden çıkar.

9. Ekran güncellemeyi ve uyarıları tekrar görüntülemeyi açın (döngünün dışında).

Application.ScreenUpdating = Doğru
Application.DisplayAlerts = Doğru

10. Programı test edin.

Sonuç:

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave