Microsoft Excel'de VBA kullanarak daha fazla Alan içeren bir aralığı belirtilen bir sayfaya kopyalayın

Anonim

Bu yazıda, belirli bir sayfaya birden çok alanın birleşimi için bir makro oluşturacağız.

Ham veriler, Ad ve Yaşı içeren bazı örnek verilerden oluşur. Ham veri içeren iki alanımız var. Her iki alanın da “Hedef” sayfasında birleştirilmesini istiyoruz.

“Kaydı Kopyala” düğmesine tıklamak, biçimlendirme ile birlikte her iki alandaki verilerin birleşimini yapacaktır.

“Yalnızca Değeri Kopyala” düğmesine tıklamak, her iki alandaki verilerin birleşimini de yapacak, ancak hücrenin biçimini kopyalamadan.

Kod açıklaması

Her Küçük Sayfa İçin("Ana").Range("A9:B13,D16:E20").Alanlar

Sonraki Smallrng

Yukarıdaki For Her döngüsü, tanımlanmış alanlarda döngü yapmak için kullanılır.

DestRange = Sheets("Hedef") olarak ayarlayın.Range("A" & LastRow)

Yukarıdaki kod, verileri kopyalamak istediğimiz son hücrenin bir aralık nesnesini oluşturmak için kullanılır.

Smallrng.Copy DestRange

Yukarıdaki kod, verileri belirtilen hedefe kopyalamak için kullanılır.

Lütfen kod için aşağıdan takip edin

 Seçenek Explicit Sub CopyMultiArea() 'Değişkenleri bildiriyor Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long 'Belirtilen alanlarda döngü Her Smallrng In Sheets("Main").Range("A9:B13,D16:E20"). Alanlar 'Son hücrenin satır numarasını bulma LastRow = Sheets("Hedef").Range("A1").SpecialCells(xlLastCell).Row + 1 'Kayıtların kopyalanması gereken hücreyi seçme LastRow = 2 ise Sonra HedefRange Ayarla = Sheets("Hedef").Range("A" & LastRow - 1) Else Set DestRange = Sheets("Hedef").Range("A" & LastRow) End If 'Kayıtları belirtilen hedef aralığa kopyalanıyor Smallrng.Copy DestRange Sonraki Smallrng End Sub Sub CopyMultiAreaValues() 'Değişkenleri bildiriyor Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long 'Sayfalardaki Her Smallrng için("Ana").Range("A9:B13,D16:E20" .Areas 'Son hücrenin satır numarasını bulma LastRow = Sheets("Hedef").Range("A1").SpecialCells(xlLastCell).Row + 1 With Smallrng 'Yenilenen hücrenin seçilmesi LastRow = 2 ise, Set DestRange = Sheets("Hedef").Range("A" & LastRow - 1).Resize(.Rows.Count, .Columns.Count) Else Set DestRange = Sheets(" Destination").Range("A" & LastRow).Resize(.Rows.Count, .Columns.Count) End If End With 'Değerleri kaynaktan hedefe atama DestRange.Value = Smallrng.Value Sonraki Smallrng End Sub 

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın