Birden Çok Excel Dosyasını Tek Bir Excel Çalışma Kitabında Birleştirme

Birden çok Excel dosyasını tek bir Excel çalışma kitabında birleştirmek isteyen bir arkadaşımdan telefon aldım. Bir klasörde çok sayıda dosya vardı ve tüm çalışma kitaplarındaki tüm çalışma sayfalarını tek bir çalışma kitabında toplamak istedi.

Bu manuel olarak yapılabilse de, zaman alıcı ve hataya açık olacaktır.

Ancak basit bir VBA kodu bunu birkaç saniye içinde yapabilir.

Birden Fazla Excel Dosyasını Tek Dosyada Birleştirin

Belirli bir klasördeki birden çok Excel çalışma kitabını tek bir Excel çalışma kitabında birleştirebilen kod:

Sub ConslidateWorkbooks() 'Sumit Bansal tarafından https://trumpexcel.com adresinden oluşturuldu Dim FolderPath As String Dim Dosya Adı As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ("userprofile") & "DesktopTest" Dosya Adı = Dir( FolderPath & "*.xls*") Dosya Adı "" Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Sonraki Sayfa Çalışma Kitapları İçin Doğru (Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub

Bu Kod Nasıl Kullanılır?

Bu kodu kullanma adımları şunlardır:

  • Birleştirmek istediğiniz tüm Excel dosyalarını bir klasöre koyun. Bu öğreticinin amacı için Test adlı bir klasör oluşturdum ve içinde altı dosya var (4 Excel çalışma kitabı ve her biri 1 Power Point ve Word).
  • Yeni bir Excel çalışma kitabı açın.
  • ALT + F11 tuşlarına basın (veya Geliştirici -> Kod -> Visual Basic'e gidin). Bu, Visual Basic Düzenleyicisini açacaktır.
  • VB Editöründe, Proje Editöründe, çalışma kitabı için herhangi bir nesneye sağ tıklayın ve Ekle -> Modül'e gidin. Bu, çalışma kitabı için bir modül ekleyecektir.
  • Modüle çift tıklayın. Sağdaki kod penceresini açacaktır.
  • Yukarıdaki kodu kopyalayıp kod penceresine yapıştırın.
  • Kodda, aşağıdaki kod satırını değiştirmeniz gerekir:
    FolderPath = Environ("kullanıcı profili") & "Masaüstü Testi"

    Bu satırda, birleştirmek istediğiniz dosyaların bulunduğu klasörün konumu ile çift tırnak içindeki (turuncu ile vurgulanan) kısmı değiştirin. Yukarıda kullanılan kodda, klasör Masaüstündedir. Başka bir yerde olması durumunda, o yolu burada belirtin.

  • İmleci kodun herhangi bir yerine getirin ve Araç Çubuğu seçeneklerindeki yeşil oynat düğmesine tıklayın (veya F5 tuşuna basın).

Bu, kodu çalıştıracak ve klasördeki tüm Excel dosyalarındaki tüm çalışma sayfalarını tek bir çalışma kitabında birleştirecektir.

Bu Kod Nasıl Çalışır?

  • Kod, belirtilen klasörden dosya adlarını almak için DIR işlevini kullanır.
  • Aşağıdaki satır, ilk excel dosya adını 'Dosya adı' değişkenine atar.
    Dosya adı = Dir(KlasörYolu & “*.xls*”)
  • Ardından Do while döngüsü, tüm dosyaların kapsanıp kapsanmadığını kontrol etmek için kullanılır.
  • 'Do while' döngüsü içinde, tüm çalışma sayfalarını kodu çalıştırdığımız çalışma kitabına kopyalamak için 'ForEvery' döngüsü kullanılır.
  • Do Döngüsünün sonunda aşağıdaki kod satırı kullanılır: Dosyaadı = Dir(). Dosya adı değişkenine bir sonraki Excel dosya adını atar ve döngü yeniden başlar.
  • Tüm dosyalar kapatıldığında, DIR işlevi, döngü bittiğinde olan boş bir dize döndürür.

MSDN kitaplığındaki DIR işlevinin açıklaması aşağıdadır:

Yön yol adıyla eşleşen ilk dosya adını döndürür. Yol adıyla eşleşen ek dosya adlarını almak için arayın Yön yine hiçbir argüman olmadan. Daha fazla dosya adı eşleşmediğinde, Yön sıfır uzunlukta bir dize (“”) döndürür.

Hiç VBA kullanarak bu tür bir şey denediniz mi? Yaptıklarını paylaş ve hepimiz ondan bir şeyler öğrenebiliriz.

VBA Kullanarak Çılgın Zamandan Tasarruf Edin. Kontrol et Excel VBA KURSU.

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

wave wave wave wave wave