Excel VBA, Excel otomasyonunun ayrılmaz bir parçasıdır ve VBA'nın kullanımı ve faydaları göz ardı edilemez. Excel'de birden çok sayfayı ve çalışma kitabını birleştirmeye çalışırken zorlu bir mücadele içindeyseniz, yardım etmek için buradayız.

Bu kılavuzda bahsedilen makrolar, görünüşte aşılmaz olan görevi saniyeler içinde (veya veri varlıkları büyükse dakikalar içinde) gerçekleştirmenize yardımcı olacaktır.

Bu öğreticiyi izleyerek, Excel'de kendi VBA makronuzu oluşturacak ve birden çok sayfayı tek bir dosyada verimli bir şekilde birleştireceksiniz.

Birden Fazla Excel Sayfasını Tek Dosyada Birleştirme

Bu görev için veriler aşağıdaki sayfalarda saklanır:

  • Sayfa1
  • Sayfa2
  • Sayfa3

Yukarıda listelenen sayfa adları yalnızca açıklama amaçlıdır. Bu VBA makrosu geneldir ve sayfa adlarına bağlı değildir; kodu, herhangi bir sayfa adı (lar) ile kullanmak için özelleştirebilirsiniz.

Kodu Çalıştırmak için Ön Koşullar

Aşağıda listelenen VBA kodunu çalıştırmak için bazı önkoşullar vardır.

Makro kodunu yeni bir Excel dosyasında saklamanız gerekir. Bu çalışma kitabını bir

instagram viewer
.xlsm uzantı. VBA makro çalışma kitabını herhangi bir adla kaydedebilirsiniz.

Yeni bir Excel dosyası açın; basmak Alt + F11 Excel VBA düzenleyicisini açmak için klavyenizde. Editör açıldığında, üzerine tıklayarak yeni bir kod modülü ekleyin. Sokmak üstteki sekme. Seçme Modül yeni bir modül eklemek için; aşağıda verilen VBA makro kodunu gireceğiniz yer burasıdır.

Birleştirilecek veri sayfaları tamamen başka bir ayrı çalışma kitabında olmalıdır. Çalışma kitabının ve sayfaların adı, seçtiğiniz her şey olabilir.

VBA kodunu yürüttüğünüz anda, VBA makrosu, birincil çalışma kitabını (veri çalışma kitabı) seçin ve içeriği aynı dosya içinde yeni eklenen bir sayfaya yapıştırın. çalışma kitabı.

Birleştirilmiş veriler adlı sayfada mevcut olacaktır. Konsolide.

VBA Kodunu Çalıştırma

Yeni kaydedilen makro kodunu çalıştırmanın zamanı geldi. Bu kodu kopyalayıp VBA düzenleyici modülüne yapıştırın:

Alt konsolide_shts()
'kod içinde kullanılan çeşitli değişkenleri ve vba veri türlerini bildirin
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'yürütme sırasında ekran titremesini ve uyarı açılır pencerelerini devre dışı bırakın
Uygulama ile
.ScreenUpdating = Yanlış
.DisplayAlerts = Yanlış
İle bitmek
'bir makro değişkeninde birincil çalışma kitabının adını saklayın. Test.xlsx'i birincil çalışma kitabınızın adıyla değiştirin
wbk1 = Çalışma Kitapları ("Test.xlsx") olarak ayarlayın
'üzerinde işlev (ler) gerçekleştirmeden önce çalışma kitabını etkinleştirin
wbk1.Activate
'Birleştirilmiş bir sayfanın zaten var olup olmadığını kontrol etmek için döngü için bir vba çalıştırın. Varsa, for döngüsü onu siler.
wbk1.Sheets'deki her bir sayfa için
Eğer sht. İsim = "Konsolide" Sonra sht. Silmek
Sonraki bölüm
'Yeni birleştirilmiş verileri depolamak için yeni bir sayfa ekleyin
Çalışma sayfaları. Eklemek. İsim = "Birleştirilmiş"
'Birleştirilmiş sayfadaki her bir sütuna bazı başlıklar ekleyin
Sayfalarla ("Birleştirilmiş")
.Range("a1").Value = "SiparişTarihi"
.Range("b1").Value = "Bölge"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Öğe"
.Range("e1").Value = "Birimler"
.Range("f1").Value = "BirimMaliyet"
.Range("g1").Value = "Toplam"

İle bitmek
'Yeni oluşturulan sayfa birleştirilmiş, birincil çalışma kitabındaki her bir sayfadaki birleştirilmiş verileri tutacaktır.

i = 1 için wbk1.Worksheets. Saymak
Eğer Sayfalar (i).Ad <> "Birleştirilmiş" Sonra
'Çalışma kitabındaki veri sayfalarından son doldurulmuş satırı yakalayın
lastrow = Sayfalar (i).Range("a1").End (xlDown).Row
'Birleştirilmiş sayfada son doldurulmuş satırı yakalayın
lastrow1 = wbk1.Sheets("Birleştirilmiş").Range("a1048576").End (xlUp).Satır + 1

'Kaynak sayfadaki verileri kopyalayın ve birleştirilmiş sayfaya yapıştırın
Sheets (i).Range("a2:g" & lastrow).Copy Destination:= Sheets("Consolidated").Range("a" & lastrow1)
Bitir
sonraki ben
'İleride kullanmak üzere Excel VBA işlevlerini etkinleştirin
Uygulama ile
.ScreenUpdating = Doğru
.DisplayAlerts = Doğru
İle bitmek

Alt Alt

VBA Kodu Açıklaması

İlk olarak, kod içinde kullandığınız tüm değişkenleri bildirin ve kodun sorunsuz çalışmasını sağlamak için bunları doğru VBA veri türleriyle atayın.

Değişkenleri bildirdikten sonra, bazı temel temizlik işlemleri gereklidir. Bu, ekran titremesini devre dışı bırakarak ve açılır uyarıları bastırarak yapılır. Örneğin, VBA kodunu kullanarak mevcut bir sayfayı sildiğinizde, Excel'de bir istem, sayfayı silmeden önce onay ister. Bunun gibi istemler, yürütme hızını artırmak için bastırılır.

Bir sonraki adımda, tüm verilerinizi içeren çalışma kitabının adını tanımlamanız gerekir. Yer değiştirmek Test.xlsx çalışma kitabınızın adı ve uzantısı ile. Adı tırnak içine aldığınızdan emin olun.

Birincil çalışma kitabını etkinleştirin ve mevcut tüm sayfaları bu adla silin. konsolide önceden saklanan verileri ortadan kaldırmak için. VBA kodu her sayfa arasında geçiş yapar ve sayfa adıyla karşılaştığı anda konsolide onu silecektir. Bu, kullanılarak yapılır VBA EĞER ifadesimantıksal koşulları kontrol eden ve koşul karşılanır karşılanmaz sayfayı silen .

Birleştirilmiş verileri depolamak için birincil çalışma kitabına yeni bir sayfa eklenir. Daha sonra, bu sayfaya önceden biçimlendirilmiş, standartlaştırılmış başlıklar eklenir. Tırnak içindeki hücre referanslarının yanındaki bilgileri güncelleyerek başlıkların (sütun başlıkları) değerlerini değiştirebilirsiniz.

Örneğin: .Range(“a1”) = “SiparişTarihi” ile değiştirilebilir .Range(“a1”) = “SiparişNumarası”

Ardından, bir VBA FOR döngüsü her çalışma sayfası arasında geçiş yapar, sayfanın içeriğini kopyalar ve içeriği konsolide çalışma kitabındaki bir sonraki sayfaya geçmeden önce çalışma sayfası. Bu işlem, tüm sayfalar kopyalanana kadar tekrarlanır.

Bu işlem sırasında, tüm satırlar otomatik olarak hesaplanır ve Konsolide sayfaya yapıştırılır. Veriler yapıştırılmadan önce son doldurulan satır otomatik olarak hesaplanır. Makro dinamiktir ve her çalışma sayfasındaki değişen veri satırlarına göre ayarlanabilir.

İlişkili: Bilmeniz Gereken Gelişmiş Microsoft Excel Özellikleri

Tüm sayfalardaki veriler ana konsolidasyon sayfasına yapıştırıldığında, makro kodun son ayağına geçer. Başlangıçta devre dışı bırakılan VBA işlevleri, ileride kullanılmak üzere yeniden etkinleştirilir.

Excel VBA Makrosunu Kullanarak Birden Çok Sayfayı Birleştirme

Excel VBA, tüm Excel bileşenleriyle iyi çalışan gereksiz bir programlama dilidir. Her kod parçası önemlidir ve yürütmenin satır satır yürütme sistemine bağlı olduğunu hatırlamak önemlidir, bu nedenle kod satırlarının sırasını değiştirmemelisiniz.

Kodu ihtiyaçlarınıza göre özelleştirmek için gerekli değişiklikleri yapabilir ve bu kodu çalıştırarak verileri verimli ve etkili bir şekilde saniyeler içinde bir araya getirebilirsiniz.

Verileri Sıralamak için 5 Harika Microsoft Excel Makrosu

Bu Excel makrolarıyla veri yönetimini çok kolay hale getirin.

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • Programlama
  • Microsoft Excel
  • makrolar
  • Programlama
Yazar hakkında
Gaurav Siyali (21 Makale Yayınlandı)

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.

Gaurav Siyal'dan Daha Fazla

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