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:
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?