Bazen birden fazla sayfayı tek bir sayfada birleştirmek isteriz, böylece verileri kolayca analiz edebilir ve bazı yararlı bilgilere dönüştürebiliriz. Bu makaleler, VBA kullanarak birden çok çalışma sayfasını tek bir çalışma sayfasında nasıl birleştireceğinizi anlatacaktır.
Örnek:
Burada, verileri farklı çalışma sayfalarına döndüren sunucudan bazı veriler getirdim. Bir sayfa daha ekledim ve adını “Master” koydum. Diğer sayfa adları önemli değil.
Şimdi bu makroyu çalıştırın.
Sub Merge_Sheets() Dim startRow, startCol, lastRow, lastCol As Long Dim üstbilgileri As Range 'Konsolidasyon için Ana Sayfayı Ayarla Set mtr = Çalışma Sayfaları("Master") Set wb = ThisWorkbook 'Üstbilgileri Al Set başlıklarını = Application.InputBox("Seçin Başlıklar", Tür:=8) 'Başlıkları ana başlıklara kopyalayın. mtr.Range("A1") startRow = başlıklar.Row + 1 startCol = başlıklar.Column Debug.Print startRow, startCol 'tüm sayfalar arasında dolaş Her ws için wb.Worksheets'te 'ana sayfanın döngü oluşturması dışında If ws.Name "Master" Then ws.Activate lastRow = Cells(Rows.Count, startCol).End(xlUp).Row lastCol = Cells(startRow, Columns.Count). End(xlToLeft).Column 'her çalışma sayfasından veri alın ve Ana sayfaya kopyalayın Range(Cells(startRow, startCol), Cells(lastRow, lastCol))).Copy _ mtr.Range("A" & mtr.Cells(Rows) .Count, 1).End(xlUp).Row + 1) End If Next ws Worksheets("Master").End Sub'ı Etkinleştir
Bu VBA Makrosunu kullanarak sayfalar nasıl birleştirilir?
- Yeni bir sayfa ekleyin ve onu çalışma kitabında “Master” olarak adlandırın. İsterseniz daha sonra yeniden adlandırın.
- VBA düzenleyicisine bir modül ekleyin ve VBA kodunun üstüne kopyalayın.
- Makroyu çalıştırın.
- Başlıkları seçmeniz istenecektir. Başlığı seçin ve Tamam'a basın.
Ve yapılır. Tüm sayfalar master'da birleştirilir.
Nasıl çalışır?
VBA'da nesne ve değişken oluşturmanın temellerini bildiğinizi varsayıyorum. ilk bölümde işlemlerimizde ihtiyaç duyacağımız nesne ve değişkenleri oluşturduk.
Eh, vba kodundaki yorumları kullanarak açıkladığım şeylerin çoğu. Şimdi bu vba kodunun ana kısmına bakalım.
Her ws In wb.Worksheets için 'ana sayfanın döngüden hariç tutulması Eğer ws.Name "Master" ise ws.Activate lastRow = Cells(Rows.Count, startCol).End(xlUp).Row lastCol = Cells(startRow, Columns. Count).End(xlToLeft).Column 'her çalışma sayfasından veri alın ve Ana sayfaya kopyalayın Range(Cells(startRow, startCol), Cells(lastRow, lastCol))).Copy _ mtr.Range("A" & mtr. Cells(Rows.Count, 1).End(xlUp).Row + 1) End If Next ws
Önceki makalelerde, sayfalar arasında nasıl dolaşılacağını ve vba kullanarak son satır ve sütunun nasıl alınacağını öğrendik.
Burada, for döngüsünü kullanarak ana çalışma kitabındaki her bir sayfada dolaşıyoruz.
wb.Worksheets'te Her ws için
Ardından, verilerimizi bu sayfada konsolide edeceğimiz için “ana” sayfayı döngüden hariç tutarız.
Sonra son satır ve son sütun numarasını alıyoruz.
Şimdi bir sonraki satır çok önemli. Bir satırda birden fazla işlem yaptık.
Aralık(Hücreler(startRow, startCol), Hücreler(lastRow, lastCol))).Kopyala _
mtr.Range("A" & mtr.Cells(Rows.Count, 1).End(xlUp).Satır + 1)
İlk önce startRow, startCol ve lastRow ve lastCol kullanarak bir aralık oluşturuyoruz.
Range(Cells(startRow, startCol), Cells(lastRow, lastCol)) Aralık kopyalama yöntemini kullanarak kopyaladık. Range(Cells(startRow, startCol), Cells(lastRow, lastCol))).Copy Ana sayfanın A sütunundaki son boş olmayan hücreden sonra doğrudan ilk boş hücreye yapıştırdık (mtr.Cells(Rows.Count, 1).End (xlUp).Satır + 1). Range(Cells(startRow, startCol), Cells(lastRow, lastCol))).Copy _ mtr.Range("A" & mtr.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Bu döngü, tüm sayfalar için çalışır ve her sayfa verisini ana sayfaya kopyalar.
Son olarak, makronun sonunda çıktıyı görmek için ana sayfayı etkinleştiriyoruz.
Evet arkadaşlar, bir çalışma kitabındaki her sayfayı bu şekilde birleştirebilirsiniz. Aşağıdaki yorumlar bölümünde bu VBA kodu veya herhangi bir excel konusuyla ilgili herhangi bir sorunuz varsa bana bildirin.
Dosyayı indir:
İlgili Makaleler:
Sayfalar arasında nasıl döngü yapılır
vba kullanarak son satır ve sütun nasıl alınır
Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin
Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme
Excel VBA Durum Çubuğunda Bir Mesaj Görüntüle
Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın
Popüler Makaleler:
Excel'de DÜŞEYARA İşlevi
Excel 2016'da EĞERSAY
Excel'de SUMIF İşlevi Nasıl Kullanılır