Vba: değerler alfabetik olarak nasıl sıralanır


Bir aralıktaki değerleri alfabetik olarak sıralamak için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:

 Sub SortAlphabetical()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub

Bu özel örnek, A1:B11 aralığındaki satırları A sütunundaki değerlere göre alfabetik olarak (A’dan Z’ye) sıralar.

Değerleri ters alfabetik sıraya göre (Z’den A’ya) sıralamak istiyorsanız bunun yerine Order1:=xlDescending’i belirtebilirsiniz.

Header:=xlYes’in ilk satırın başlık satırı olarak değerlendirilmesi gerektiğini belirttiğini unutmayın.

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

Örnek: VBA Kullanarak Değerleri Alfabetik Olarak Sıralama

Diyelim ki Excel’de çeşitli basketbol oyuncuları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:

Diyelim ki satırları takım adına göre alfabetik olarak sıralamak istiyoruz.

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

 Sub SortAlphabetical()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub

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

Satırlar artık takım adına göre alfabetik olarak (A’dan Z’ye) sıralanıyor.

Satırları ters alfabetik sıraya göre (Z’den A’ya) sıralamak için Order1:=xlDescending : belirtebiliriz:

 Sub SortAlphabetical()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlDescending, Header:=xlYes
End Sub

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

Satırlar artık takım adına göre ters alfabetik sıraya göre (Z’den A’ya) sıralanıyor.

Not #1 : Bu örnekte tek sütuna göre sıralama yaptık. Ancak birden fazla sütunda sıralama yapmak için daha fazla anahtar belirleyebilirsiniz.

Not #2 : VBA sıralama yönteminin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

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

VBA: Bir sayfayı birden çok sütuna göre sıralama
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: bir sütunun nasıl filtreleneceği

Yorum ekle

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