Vba: aynı değerlere sahip hücreler nasıl birleştirilir


Belirli bir aralıktaki aynı değerlere sahip hücreleri birleştirmek için VBA’da aşağıdaki sözdizimini kullanabilirsiniz:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

Bu özel makro, A1:C13 aralığındaki aynı değerlere sahip hücreleri birleştirir.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: VBA’da Aynı Değerlere Sahip Hücreleri Birleştirme

Çeşitli basketbolcuların attığı puanlar hakkında bilgi içeren Excel’de aşağıdaki veri kümesine sahip olduğumuzu varsayalım:

Ardışık satırlarda aynı değerlere sahip hücreleri birleştirmek istediğimizi varsayalım.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

VBA hücreleri aynı değerlerle birleştirme

Aynı konferans adını ve ekip adını içeren hücrelerin her birinin birleştirildiğini unutmayın.

Metnin birleştirilen hücrelerde dikey olarak ortalanması gerektiğini belirtmek için cell.VerticalAlignment = xlCenter ifadesini kullandığımızı unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Kullanılan sütunların sayısı nasıl sayılır?
VBA: Satır yüksekliği nasıl değiştirilir?
VBA: Sütun genişliği nasıl değiştirilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir