Çeşitli veri kaynaklarıyla çalışırken, son bir veri parçasına ulaşmadan önce birden çok çalışma kitabını ve çalışma sayfasını derlemek için genellikle zorlanabilirsiniz. Güne başlamadan önce bir araya getirmeniz gereken birkaç yüz çalışma kitabınızın olduğu bir durum hayal edin.
Hiç kimse, nihayet birleştirilmiş bir çalışma kitabı yapmadan önce, farklı kaynaklar üzerinde çalışarak, her bir çalışma kitabını açarak, çeşitli sayfalardan verileri kopyalayıp yapıştırarak sonsuz saatler harcamak istemez. Peki ya bir VBA makrosu bunu sizin için yapabilirse?
Bu kılavuzla, birden çok çalışma kitabını birleştirmek için birkaç dakika içinde (veri dosyaları çok fazlaysa) kendi Excel VBA makro kodunuzu oluşturabilirsiniz.
Kendi VBA Makro Kodunuzu Oluşturmak için Ön Koşullar
Kaynak veri çalışma kitaplarının geri kalanı ayrıyken, VBA kodunu barındırmak için bir çalışma kitabına ihtiyacınız vardır. Ek olarak, bir çalışma kitabı oluşturun konsolide tüm çalışma kitaplarınızdaki birleştirilmiş verileri depolamak için
Klasör oluştur konsolidasyon tüm kaynak çalışma kitaplarınızı depolamak için tercih ettiğiniz konumda. Makro çalıştığında, bu klasörde depolanan her çalışma kitabı arasında geçiş yapar, çeşitli sayfalardan içeriği kopyalar ve Konsolide çalışma kitabına yerleştirir.
Kendi Excel VBA Kodunuzu Oluşturma
Ön koşullar ortadan kalktığında, kodu incelemenin ve gereksinimlerinize uyarlamak için temel bilgileri hacklemeye başlamanın zamanı geldi.
İlişkili: Bilmeniz Gereken Gelişmiş Microsoft Excel Özellikleri
basın Alt+F11 VBA makro kodu düzenleyicisini açmak için Excel'de tuşuna basın. Aşağıda yazılan kodu yapıştırın ve dosyayı Makro özellikli bir çalışma kitabı olarak kaydedin (.xlsm uzantı).
Alt açık dosyalar()
'VBA kodunda kullanılan değişkenleri bildirin
MyFolder As String, MyFile As String, wbmain As Workbook, Lastrow As Long
'kod işlemeyi geliştirmek için bu işlevleri devre dışı bırakın
Uygulama ile
.DisplayAlerts = Yanlış
.ScreenUpdating = Yanlış
İle bitmek'dosyalarınızın kaydedileceği klasörün yolunu değiştirin
MyFolder = InputBox("Birleştirme klasörünün yolunu girin") & "\"
'klasörün referansını bir makro değişkeninde tanımla
MyFile = Dir (MyFolder)
'klasörde saklanan her bir çalışma kitabı arasında geçiş yapmak için bir döngü açın
Len (MyFile) > 0 iken Yap
'Konsolidasyon çalışma kitabını etkinleştir
Windows("Konsolidasyon").Etkinleştir
'son doldurulmuş satırı hesapla
Aralık("a1048576").Seç
Seçim. Bitir (xlUp).Seçin
Aktif hücre. Ofset (1, 0).SeçKonsolidasyon klasöründeki ilk çalışma kitabını aç
Çalışma kitapları. Dosya Adını Aç:=Klasörüm ve Dosyam
Windows (MyFile).Etkinleştir
'verileri kopyalamak için çalışma kitaplarındaki her sayfa arasında geçiş yapın
Dim ws As Çalışma Sayfası
Sayfalardaki Her ws içinws. etkinleştir
ws. AutoFilterMode = Yanlış'başlığı görmezden gelin ve 2. satırdaki verileri kopyalayın
Hücreler (2, 1) = "" ise, 1'e Git10'a git
1: Sonraki
10: Aralık("a2:az20000").Kopyala
Windows("Konsolidasyon").Etkinleştir
'kopyalanan içeriği yapıştırın
Aktif sayfa. Yapıştırmak
Windows (MyFile).Etkinleştir
'veriler yapıştırıldıktan sonra açık çalışma kitabını kapatın
Aktif Çalışma Kitabı. Kapat
'bir sonraki çalışma kitabının değerini depolamak için önbelleği boşaltın
Dosyam = Dizin()
'klasördeki sonraki dosyayı aç
Döngü
'ileride kullanmak üzere devre dışı bırakılan işlevleri etkinleştir
Uygulama ile
.DisplayAlerts = Doğru
.ScreenUpdating = Doğru
İle bitmek
Alt Alt
VBA Kodu Açıklaması
Kodun ilk kısmı, tüm VBA kodunuzu tutan bir alt yordam tanımlamaktır. ile alt programı tanımlayın alt, ardından kodun adı. Alt ad herhangi bir şey olabilir; ideal olarak, yazmak üzere olduğunuz kodla ilgili bir isim tutmalısınız.
İlişkili: Excel İpuçları ve Püf Noktaları Öğrenmek için Web Siteleri ve Bloglar
Excel VBA, kullanıcı tarafından oluşturulan değişkenleri ve bunlarla bildirilen ilgili veri türlerini anlar. loş (boyut).
Kodunuzun işlem hızını artırmak için ekran güncellemesini kapatabilir ve kodun yürütülmesini yavaşlatacağından tüm uyarıları bastırabilirsiniz.
Kullanıcıdan veri dosyalarının saklandığı klasörün yolu sorulacaktır. Klasörde depolanan her çalışma kitabını açmak, her sayfadaki verileri kopyalamak ve onu konsolidasyon çalışma kitabı.
Konsolidasyon çalışma kitabı etkinleştirilir, böylece Excel VBA en son doldurulan satırı hesaplayabilir. Çalışma sayfasındaki son hücre seçilir ve son satır, ofset işlevi kullanılarak çalışma kitabında hesaplanır. Bu, makro kaynak dosyalardan veri eklemeye başladığında oldukça kullanışlıdır.
Döngü ilk kaynak dosyayı açarken, filtreler her bir sayfadan kaldırılır (eğer mevcut) ve A2'den AZ20000'e kadar olan veriler kopyalanacak ve Konsolidasyona yapıştırılacaktır. çalışma kitabı.
İşlem, tüm çalışma kitabı sayfaları ana çalışma kitabına eklenene kadar tekrarlanır.
İlişkili: İleri Düzey Excel'de Ustalaşmak için En İyi Çevrimiçi Kurslar
Son olarak, tüm veriler yapıştırıldıktan sonra kaynak dosya kapatılır. VBA makrosunun sonraki dosya kümesi için aynı adımları tekrarlayabilmesi için sonraki çalışma kitabı açılır.
Döngü, ana çalışma kitabında tüm dosyalar otomatik olarak güncellenene kadar çalışacak şekilde kodlanmıştır.
Kullanıcı Tabanlı Özelleştirmeler
Bazen, özellikle son kullanıcıysanız, yerleşik istemler hakkında endişelenmek istemezsiniz. Konsolidasyon klasörünün yolunu kodda sabit kodlamayı tercih ederseniz, kodun bu bölümünü değiştirebilirsiniz:
MyFolder = InputBox("Birleştirme klasörünün yolunu girin") & "\"
İle:
MyFolder = "Klasör yolu" & "\"
Ayrıca, adım bu kodda yer almadığından sütun referanslarını da değiştirebilirsiniz. Sadece son sütun referansını en son doldurulmuş sütun değerinizle değiştirin (bu durumda AZ). Son doldurulan satırın makro kodu aracılığıyla hesaplandığını hatırlamanız gerekir, bu nedenle yalnızca sütun referansını değiştirmeniz gerekir.
Bu makrodan en iyi şekilde yararlanmak için, onu yalnızca çalışma kitaplarını aynı biçimde birleştirmek için kullanabilirsiniz. Yapılar farklıysa bu VBA makrosunu kullanamazsınız.
Excel VBA Makrosunu Kullanarak Birden Çok Çalışma Kitabını Birleştirme
Bir Excel VBA kodu oluşturmak ve değiştirmek, özellikle koddaki bazı nüansları anlıyorsanız, nispeten kolaydır. VBA sistematik olarak her kod satırından geçer ve satır satır çalıştırır.
Kodda herhangi bir değişiklik yaparsanız, kodun yürütülmesini kesintiye uğratacağından, kodların sırasını değiştirmediğinizden emin olmalısınız.
Bu Excel makrolarıyla veri yönetimini çok kolay hale getirin.
Sonrakini Oku
- Programlama
- Programlama
- Microsoft Excel
Gaurav Siyal, bir dizi dijital pazarlama firması ve yazılım yaşam döngüsü belgeleri için iki yıllık yazma deneyimine sahiptir.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın