Excel'de VBA Kullanarak Aralık Sıralama (6 Örnek)

  • Bunu Paylaş
Hugh West

Excel'de VBA kullanarak aralığı nasıl sıralayacağımızı bilmek, günlük hesaplamalarımızda zaman ve emek tasarrufu sağlar. Excel varsayılan olarak bir sıralama olanağı sağlamasına rağmen. Aralık.Sırala yöntem ile bir veri kümesini normalden daha fazla seçenekle sıralamak için çeşitli parametrelere erişebiliriz.

Alıştırma Çalışma Kitabını İndirin

Bu makaleyi okurken egzersiz yapmak için bu alıştırma çalışma kitabını indirin.

Excel.xlsm'de Aralık Sıralama

Excel VBA'da Range.Sort Deyimine Giriş

Amaç : Bir hücre verisi aralığını sıralamak için.

Sözdizimi:

ifade Sırala ( Anahtar1 , Sipariş1 , Anahtar2 , Tip , Sipariş2 , Anahtar3 , Sipariş3 , Başlık , OrderCustom , MatchCase , Oryantasyon , SortMethod , DataOption1 , DataOption2 , DataOption3 )

İşte, burada ifade bir Menzil nesne, yani bir hücre, bir satır, bir sütun veya bir hücre seçimi.

Argümanlar:

Sağlamamız gerekenler üç için ana parametreler Aralık.Sırala yöntem. Onlar-

Anahtar - Sıralamamız gereken tek veya birden çok sütundaki hücre aralığı.

Sipariş - Artan veya azalan sıralama düzenini belirtin.

Başlık - Sıralanacak sütunların bir başlığa sahip olup olmadığını bildirir.

6 Excel VBA'da Aralık Sıralama Örnekleri

Bu makalede, bir veri kümesi olarak, doğum tarihleri ve yaşlarıyla birlikte insanların adlarından oluşan bir liste kullanacağız. Veri kümesini sıralamak için farklı yöntemler uygulayacağız. Makaleyi gözden geçirelim ve bu yöntemlerde ustalaşmak için pratik yapalım.

1. Excel VBA Kullanarak Tek Sütun Aralığını Sıralama

Bu örnekte, şunları yapacağız sırala insanlar en yaşlı için en genç kullanmak için adımları takip edelim. Menzil . Sırala yöntem bu olacak sırala ve Yaş sütunu içinde azalan sıra .

Adımlar:

  • Şuraya git Geliştirici Sekmesi içinde Excel Şeridi için tıklayın üzerinde Visual Basic

  • Daha sonra Modül seçeneği bir şey yok. Sekme ekle açmak için yeni modül .

Şimdi, kodumuzu sırala ve Yaş sütun aralığı.

1.1 Başlıklı Sütun

Aşağıdaki kodu görsel kod düzenleyicisine yerleştirin.

 Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub 

Basın F5 veya Koşmak düğmesine yürütmek kodu.

Açıklama:

Yukarıdaki kodda, koyduğumuz-

İfade (Range nesnesi)=Range("D4:D11"); ve yaş sütunu ile başlık içinde D4 hücresi ve değerler içinde D5:D11.

Anahtar = Range("D4"); ve anahtar için Sıralama.

Sıra= xlAzalan; istediğimiz gibi sırala değerlerinden en büyük için en düşük ayarlıyoruz sıralama düzeni olarak Azalan.

Başlık =xlEvet; Aşağıdaki ekran görüntüsünde veri kümesi bir başlık her biri için sütunlar.

1.2 Başlıksız Sütun

Aşağıdaki kodu görsel kod düzenleyicisine yerleştirin.

 Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub 

Basın F5 veya Koşmak düğmesine yürütmek kodu.

Açıklama:

Yukarıdaki kodda, koyduğumuz-

İfade (Aralık nesnesi)=Aralık("D4:D10"); ve yaş sütunu olmadan başlık var değerler içinde D4:D10.

Anahtar = Range("D4"); ve anahtar için Sıralama.

Sıra= xlAzalan; istediğimiz gibi sırala değerlerinden en büyük için en düşük ayarlıyoruz sıralama düzeni olarak Azalan.

Başlık =xlNo; Aşağıdaki ekran görüntüsünde veri kümesi yok Başlık.

İlgili İçerik: Excel'de Sütunları Verileri Karıştırmadan Sıralama (3 Yol)

2. Excel'de Birden Çok Sütun Aralığını Sıralamak için VBA Kodunu Kullanma

İçinde sıralamayı göstermek için çoklu sütunlar , ihtiyacımız var değiştir bizim veri kümesi Biraz. takılı birkaç yeni sıralar Değiştirilmiş veri kümesinde satırlar 7, 8, ve 9 var aynı değerleri için Doğum tarihi ve yaşlar ama üç farklı isim . Bunlar isimler vardır değil herhangi bir özel si̇pari̇ş yükselme veya alçalma.

Bu örnekte, isimleri şu şekilde sıralayacağız artan sıra . Aşağıdaki kodu visual basic editöründe çalıştıralım:

 Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub 

Açıklama:

Yukarıdaki ekran görüntüsünde, yaşların D sütunu vardır sıralanmış içinde azalan sipariş. Biz ekledik iki parametre daha önceki kodumuzda.

Anahtar2: =Aralık("B4") , isimleri sıralamak için anahtar.

Order2: =xlAscending , the Sipariş için kısa isimler .

Sonuç olarak görüyoruz ki isimler içinde 7, 8 ve 9. sıralar şimdi alfabetik olarak sıralanmış artan Sipariş.

Aşağıdaki ekran görüntüsünde değer .. Order2 parametresi için sırala ve isimler içinde azalan Sipariş.

Daha fazlasını okuyun: Excel'de Birden Çok Sütun Nasıl Sıralanır (5 Hızlı Yaklaşım)

3. Excel VBA'da Sütun Aralığını Sıralamak için Başlığa Çift Tıklama

Excel'in varsayılan sıralama özelliği aşağıdakilere izin vermez değerleri sırala tarafından bir sütunun çift tıklama ve sütun başlığı Ancak VBA kodunu kullanarak bunu gerçekleştirebiliriz. Aşağıdaki kodu uygulayarak bu işlevi gösterelim.

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A1:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A1:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub 

Bu kodda, kullandığımız BeforeDoubleClick olayı için normal çifti devre dışı bırak - tıklayın ki bu da düzenleme Bu olay çalışırken, eğer çift - tıklayın herhangi birinde sütun başlıkları içindeki sütun verilerini sıralar artan sıra .

Daha fazlasını okuyun: Excel'de Sütun Sıralamak için VBA (4 Yöntem)

Benzer Okumalar:

  • Excel'de Sıralama Düğmesi Nasıl Eklenir (7 Yöntem)
  • Excel'de Benzersiz Listeyi Sıralama (10 Yararlı Yöntem)
  • Excel VBA'da Sıralama Fonksiyonu Nasıl Kullanılır (8 Uygun Örnek)
  • Excel'de Yinelenenleri Sıralama (Sütunlar ve Satırlar)
  • Excel'de Rastgele Sıralama (Formüller + VBA)

4. Excel VBA Kullanarak Sütun Aralığını Arka Plan Rengine Göre Sıralama

Bir sütundaki hücre aralığını sıralayabiliriz temelli onların arka plan rengi Bunu yapmak için şunları yapmamız gerekir ekle a parametresi isimli SortOn olan bir değer xlSortOnCellColor Sıralamayı göstermek için önce farklı arka plan renkleri sıralarına veri kümesi .

Ardından visual basic kod düzenleyicisinde kopya aşağıdaki kodu girin ve F5 çalıştırmak için.

 Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub 

Aşağıdaki ekran görüntüsünde sıralanmış veri kümesi arka plan renklerine göre.

Açıklama:

  • Bu örnekte çalışma sayfası " arka plan "Yani, kodda " arka plan " olarak aktif çalışma sayfası adı.
  • Biz ayarladık B4 olarak anahtar ve B4:D10 olarak aralık Kod, verileri anahtara göre sıralayacaktır.
  • Belirtmediğimiz için başlık parametresi , kod varsayılan için çalışır Başlık yok.
  • Biz ayarladık Sipariş parametresi olarak yükseliyor, bu yüzden verileri düşük değerlerden yüksek değerlere doğru sıraladı .

Daha fazlasını okuyun: Excel'de Renklere Göre Sıralama (4 Kriter)

5. Yazı Tipi Rengine Göre Sütun Aralığını Sıralamak için VBA Kodunu Uygulayın

VBA kodunu uygulayarak, veri kümemizi aşağıdakilere göre sıralayabiliriz yazı tipi rengi . İlk olarak, şunları yapmalıyız farklı satırları renklendirin örneği açıklamak için.

Veri kümesini aşağıdakilere göre sıralamak için aşağıdaki kodu uygulayın yazı tipi rengi.

 Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0) İle ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Açıklama:

  • Bu örnekte çalışma sayfası " fontcolor "Yani, kodda " fontcolor " olarak aktif çalışma sayfası adı.
  • Biz ayarladık B4 olarak anahtar ve B4:D11 olarak aralık Kod, verileri anahtara göre sıralayacaktır.
  • Bu örnekte, başlık parametresini de şu şekilde belirttik xlEvet .
  • Burada, ayarlıyoruz Sipariş parametresi olarak yükseliyor, bu yüzden verileri düşük değerlerden yüksek değerlere doğru sıraladı .
  • Değerinin SortOn parametresi
  • Bu oryantasyon parametresi değerini tutar xlTopToBottom zorunlu olduğu için.
  • Renk arasında bir değere sahip olan RGB terimlerinde sıralamak için 0 için 255 .

Daha fazlasını okuyun: Excel'de İki Sütun Eşleşecek Şekilde Nasıl Sıralanır (Hem Tam Hem de Kısmi Eşleşme)

6. Excel VBA Kullanarak Sıralama Aralığının Yönünü Değiştirme

Kullanarak oryantasyon parametresini kullanarak verileri sıralamak istediğimiz şekli değiştirebiliriz. Bu örnekte aktarılmış veri setimizi sırala o yatay olarak .

Aşağıdaki kodu visual basic editörüne koyalım ve çalıştırmak için F5 tuşuna basalım.

 Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub 

Burada biz sıralanmış verileri temel alarak yaş satırı içinde artan dan sipariş Sol için doğru . Kodda, aşağıdaki gibi ayarlıyoruz oryantasyon parametresi olarak xlSortRows .

İlgili İçerik: Excel'de Birden Çok Sütun Nasıl Otomatik Sıralanır (3 Yol)

Hatırlanması Gerekenler

  • Bu SortOn parametresi kullandığımız sırala temelli sütun aralığı arka plan rengi ve yazı tipi rengi yalnızca bir çalışma sayfası nesnesi ile kullanamayız. aralık nesnesi .
  • Bu BeforeDoubleClick olayı verileri yalnızca yükseliyor.

Sonuç

Şimdi, Excel'de VBA kullanarak aralığı nasıl sıralayacağımızı biliyoruz. Umarım, bunu daha güvenli bir şekilde kullanmanız için sizi teşvik eder. Herhangi bir sorunuz veya öneriniz varsa, aşağıdaki yorum kutusuna yazmayı unutmayın.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.