VBA Makrosu Kullanarak Birden Çok Excel Sayfası Nasıl Birleştirir

VBA Makrosu Kullanarak Birden Çok Excel Sayfası Nasıl Birleştirir

Excel VBA, Excel otomasyonunun ayrılmaz bir parçasıdır ve VBA’nın kullanımı ve avantajları baltalanamaz. Excel’de birden fazla sayfayı ve emek harcama kitabını birleştirmeye çalışırken yokuş yukarı bir savaştaysanız, size destek olmak için buradayız.

Bu kılavuzda belirtilen makrolar, aşılmaz görünen görevi birkaç saniye içinde (yada veri varlıkları büyükse dakika) elde etmenize destek olacaktır.

Bu öğreticiyi izleyerek, Excel’de kendi VBA makronuzu oluşturacak ve birden oldukça sayfayı tek bir sayfada verimli bir halde birleştireceksiniz.

Aynı Emek harcama Kitabında Birden Fazlaca Excel Sayfası Birleştirme

Bu vazife için veriler aşağıdaki sayfalarda depolanır:

Yukarıda listelenen sayfa adları yalnızca izlenme amaçlıdır. Bu VBA makrosu geneldir ve sayfa adlarına bağlı değildir; kodu herhangi bir sayfa adıyla kullanmak suretiyle özelleştirebilirsiniz.

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

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

Makro kodunu yeni bir Excel dosyasında depolamanız gerekir. Bu emek harcama kitabını .xlsm uzantı. VBA makro emek harcama kitabını herhangi bir adla kaydedebilirsiniz.

Yeni bir Excel dosyası açın; basın Alt + F11 excel VBA düzenleyicisini açmak için klavyenizde. Düzenleyici açıldıktan sonrasında, Sokmak sekmesindeki sekmesine bakın. Seçmek 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ı emek harcama kitabında olmalıdır. Emek harcama kitabının ve sayfaların adı ne seçerseniz seçin olabilir.

VBA kodunu yürütür yürütmez, VBA makrosu birincil emek harcama kitabındaki (veri emek harcama kitabı) kullanılabilir her emek harcama sayfasında geçiş meydana getirecek ve içinde ne olduğu aynı emek harcama kitabında yeni eklenen bir sayfaya yapıştıracaktır.

Birleştirilmiş veriler, Konsoli -de.

VBA Kodunu Çalıştırma

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

Sub consolidate_shts()
'declare the various variables used within the code and the vba data types
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'disable screen flickering and alert pop-ups during the execution
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'store the name of the primary workbook in the a macro variable. Replace Kontrol.xlsx with the name of your primary workbook
Set wbk1 = Workbooks("Kontrol.xlsx")
'activate the workbook before performing the function(s) on it
wbk1.Activate
'run a vba for loop to check if a sheet Consolidated already exists. If it exists, the for loop will delete it.
For Each sht In wbk1.Sheets
If sht.Name = "Consolidated" Then sht.Delete
Next sht
'Add a new sheet to store the newly consolidated data
Worksheets.Add.Name = "Consolidated"
'Add some headers to each individual column within the consolidated sheet
With Sheets("Consolidated")
.Range("a1").Value = "OrderDate"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Item"
.Range("e1").Value = "Units"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Total"

End With
'The newly created sheet consolidated will hold the consolidated data from each individual sheet in the primary workbook

For i = 1 To wbk1.Worksheets.Count
If Sheets(i).Name <> "Consolidated" Then
'Capture the last populated row from the data sheets in the workbook
lastrow = Sheets(i).Range("a1").End(xlDown).Row
'Capture the last populated row in the Consolidated sheet
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End(xlUp).Row + 1

'Copy data from source sheet and paste it in the consolidated sheet
Sheets(i).Range("a2:g" & lastrow).Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
End If
Next i
'Enable Excel VBA functions for future use
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With

End Sub

VBA Kodu Açıklandı

İlk olarak, kod içinde kullandığınız tüm değişkenleri bildirin ve kodun sorunsuz emek harcaması için bu tarz şeyleri doğru VBA veri çeşitleriyle atayın.

Değişkenleri beyan ettikten sonrasında, bazı temel temizlik gereklidir. Bu, ekran titremesini dönem dışı bırakarak ve açılır ikazları bastırarak yapılır. Mesela, VBA kodunu kullanarak varolan bir sayfayı sildiğinizde, Excel içindeki bir istem sayfayı silmeden ilkin onay ister. Bunun benzer biçimde istemler yürütme hızını çoğaltmak için bastırılır.

Bir sonraki adımda, tüm verilerinizi içeren emek harcama kitabının adını tanımlamanız gerekir. Değişiklik yapmak Kontrol mi.xlsx emek harcama kitabı adınızın adı ve uzantısıyla beraber. Adı tırnak işaretleri ile çevrelediğinizden güvenilir olun.

VBA düzenleyici arabirimi

Birincil emek harcama kitabını etkinleştirme ve adı olan varolan sayfaları silme Konsoli -de evvelde depolanmış verileri ortadan kaldırmak için. VBA kodu her sayfa süresince geçişler ve sayfa adıyla karşılaşmış olduğu anda Konsoli -de Sileceğiz. Bu, mantıksal koşulları denetleyen ve şart karşılanır karşılanmaz sayfayı silen VBA IF deyimi kullanılarak yapılır.

Birleştirilmiş verileri depolamak için birincil emek harcama kitabına yeni bir sayfa eklenmiş olur. Sonrasında, evvelde biçimlendirilmiş, standartlaştırılmış üstbilgiler bu sayfaya eklenmiş olur. Tırnak içindeki hücre başvurularının tarafındaki detayları güncelleştirerek başlıkların (sütun başlıkları) değerlerini değiştirebilirsiniz.

Örnek olarak: . Aralık(“a1”) = “SiparişTariası” ile değiştirilebilir . Aralık(“a1”) = “Sipariş Numarası”

VBA düzenleyici arabirimi

Sonrasında, vba for döngüsü her emek harcama sayfasında geçiş yapmak, sayfanın içeriğini kopyalar ve içinde ne olduğu Konsoli -de emek harcama kitabındaki bir sonraki sayfaya geçmeden ilkin emek harcama sayfası. Bu işlem, tüm sayfalar kopyalanana kadar yinelenir.

Bu işlem esnasında, tüm satırlar otomatikman hesaplanır ve Konsolide sayfaya yapıştırilir. Son doldurulen satır, veriler yapıştırılmadan ilkin otomatikman hesaplanır. Makro dinamiktir ve her emek harcama sayfasındaki değişen veri satırlarına ayarlayabilir.

İlgili: Bilmeniz Ihtiyaç duyulan Gelişmiş Microsoft Excel Özellikleri

Tüm sayfalardaki veriler ana konsolidasyon sayfasına yapıştırıldıktan sonrasında, makro kodun son ayağına göç eder. Başlangıçta dönem dışı bırakılan VBA işlevleri ileride kullanılmak suretiyle tekrardan etkinleştirilir.

VBA düzenleyici arabirimi

Excel VBA Makrosunu Kullanarak Birden Fazlaca 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ı bulunduğunu anımsamak önemlidir, bundan dolayı kod satırlarının sırasını değiştirmemelisiniz.

Gereksinimleriniz için kodu özelleştirmek için lüzumlu değişimleri yapabilir ve verileri saniyeler içinde verimli ve etkili bir halde birleştirmek için bu kodu çalıştırabilirsiniz.

Yorum Yap
0 Yorum yapan