Excel'de Tablo Sıralamak için VBA (4 Yöntem)

  • Bunu Paylaş
Hugh West

Uygulama VBA makrosu Excel'de herhangi bir işlemi çalıştırmak için en etkili, en hızlı ve en güvenli yöntemdir. Bu makalede, size nasıl yapılacağını göstereceğiz tabloyu sıralama ile Excel'de VBA .

Çalışma Kitabını İndirin

Ücretsiz alıştırma Excel çalışma kitabını buradan indirebilirsiniz.

VBA.xlsm ile Tablo Sıralama

Excel'de Tablo Sıralamak için VBA Uygulamadan Önce Bilinmesi Gerekenler

ile çalışırken sıkça kullanmanız gereken bazı parametreler vardır Sırala yöntemi VBA Bu yüzden burada, kodu yazarken aşina olmanızı sağlamak için bazı parametreleri tartışacağız.

Parametre Gerekli/ İsteğe bağlı Veri Tipi Açıklama
Anahtar Opsiyonel Varyant Değerleri sıralanacak aralığı veya sütunu belirtir.
Sipariş Opsiyonel XlSortOrder Sıralamanın gerçekleştirileceği sırayı belirtir.
  • xlYükselen = Artan sırada sıralamak için.
  • xlAzalan = Azalan sırada sıralamak için.
Başlık Opsiyonel XlYesNoGuess İlk satırın başlık içerip içermediğini belirtir.
  • xlHayır = Sütun herhangi bir başlığa sahip olmadığında; Varsayılan değer.
  • xlEvet = Sütunların başlıkları olduğunda.
  • xlGuess = Excel'in üstbilgileri belirlemesine izin vermek için.

Excel'de Tablo Sıralamak için VBA Uygulamada 4 Yöntem

Bu bölüm size aşağıdakileri nasıl yapacağınızı gösterecektir Excel tablolarını sıralama dikkate alarak değer, renkler, simgeler ve çoklu sütunlar ile VBA Kod.

1. Excel'de Tabloyu Değere Göre Sıralamak için VBA'yı Gömün

Aşağıdaki örneği göz önünde bulundurarak bu tabloyu değerlere göre sıralayın içinde mevcut Mark sütununda azalan sırada.

Adımlar:

  • Basın Alt + F11 sekmesine gidin veya klavyenizde Geliştirici -> Visual Basic açmak için Visual Basic Düzenleyicisi .

  • Açılır kod penceresinde, menü çubuğundan Insert -> Modül .

  • Aşağıdaki kodu kopyalayın ve kod penceresine yapıştırın.
 Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub 

Kodunuz artık çalışmaya hazır.

İşte,

  • SortTBL → Tablo adı belirtildi.
  • SortTBL[Marks] -> Sıralanacak tablonun sütun adı belirtilir.
  • Anahtar1:=iSütun → Koda tabloda hangi sütunun sıralanacağını bildirmek için sütun aralığını belirtin.
  • Sıra1:=xlAzalan → Sıra şu şekilde belirtilir xlAzalan sütunu azalan sırada sıralamak için. Eğer sütunu artan sırada sıralamak istiyorsanız o zaman xlYükselen onun yerine.
  • Header:= xlYes → Bu tablodaki sütun bir başlığa sahip olduğundan, bunu xlEvet seçenek.

  • Basın F5 klavyenizde veya menü çubuğundan Run -> Run Sub/UserForm üzerine de tıklayabilirsiniz. küçük Oynat simgesi makroyu çalıştırmak için alt menü çubuğunda.

Tablonuzdaki sütunun artık şu şekilde olduğunu göreceksiniz azalan sırada sıralanır .

Daha Fazla Oku: Excel'de Veriler Değere Göre Nasıl Sıralanır (5 Kolay Yöntem)

2. Tabloyu Birden Çok Sütun İçin Sıralamak için VBA Makrosu Ekleyin

Ayrıca şunları da yapabilirsiniz tabloyu birden çok sütun için sıralama ile Excel'de VBA makro.

Yukarıdaki tablodan sütunları sıralayacağız İsim ve Departman artan sırada.

Adımlar:

  • Öncekiyle aynı şekilde, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
  • Kod penceresinde, aşağıdaki kodu kopyalayın ve yapıştırın.
 Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub 

Kodunuz artık çalışmaya hazır.

İşte,

  • TableValue → Tablo adı belirtildi.
  • TableValue[Ad] -> Sıralanacak tablonun ilk sütun adı belirtilir.
  • TableValue[Departman] -> Sıralanacak tablonun ikinci sütun adı belirtilir.
  • Anahtar1:=iSütun1 → Kodun tablodaki ilk sütunun sıralanması gerektiğini bilmesini sağlamak için sütun aralığı belirtildi.
  • Anahtar1:=iSütun2 → Kodun tablodaki ikinci sütunun sıralanması gerektiğini bilmesini sağlamak için sütun aralığı belirtildi.
  • Order1:=xlAscending → Sıra şu şekilde belirtilir xlYükselen Sütunu azalan sırada sıralamak istiyorsanız, sütunu azalan sırada sıralamak için xlAzalan onun yerine.
  • Header:= xlYes → Bu tablonun sütunları başlıklara sahip olduğundan, bunu xlEvet seçenek.

  • Koşmak bu kod ve her ikisini de alacaksınız tablonun sütunları sıralanır artan sırada.

Daha fazlasını okuyun: Excel'de Birden Çok Sütun Nasıl Otomatik Sıralanır (3 Yol)

Benzer Okumalar

  • Excel'de Benzersiz Liste Nasıl Sıralanır (10 Yararlı Yöntem)
  • Excel VBA ile Dizi Sıralama (Hem Artan Hem Azalan Sıralama)
  • Excel'de Veriler Nasıl Sıralanır ve Filtrelenir (Eksiksiz Bir Kılavuz)
  • Veri Değiştiğinde Excel Otomatik Sıralama (9 Örnek)
  • Excel'de Rastgele Sıralama (Formüller + VBA)

3. Excel'de Tabloyu Hücre Rengine Göre Sıralamak için Makro Uygulama

Ayrıca şunları da yapabilirsiniz bir tabloyu hücre rengine göre sıralama içerdiği.

Yukarıdaki tabloyu örnek alarak, bu tablonun içerdiği renklere göre nasıl sıralanacağını göstereceğiz.

Adımlar:

  • Daha önce gösterildiği gibi, açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
  • Kod penceresinde, aşağıdaki kodu kopyalayın ve yapıştırın.
 Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub 

Kodunuz artık çalışmaya hazır.

Burada RGB sağladığımız kodları, onu veya başka herhangi bir RGB Aşağıda verilen gif'i takip ederek istediğiniz kodu girin.

  • Sadece üzerine tıklayın renkli hücre .
  • İçinde Ev sekmesine tıklayın, ardından Dolgu Renginin yanındaki ok sonra seçin Daha Fazla Renk . göreceksiniz RGB kodları Özel sekmesi göründü Renkler açılır kutusu.

  • Koşmak bu kod ve tablonuz şöyle olacaktır renklere göre sıralanmış .

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

4. Excel Tablosunu Simgeye Göre Sıralamak için VBA Uygulayın

Veri kümesinin tablosunda daha iyi okunabilirlik için simgeler olduğunu varsayalım. simgelere dayalı tablo ile Excel'de VBA makro.

Yukarıdaki veri kümesine bakın. Burada tabloda sayı değerlerinin yanında simgeler vardır. Marks Böylece hangi öğrencinin iyi, kötü veya ortalama sonuçlara sahip olduğunu anlayabiliriz.

Bir hücrenin içine nasıl simge ekleyebileceğinizi bilmiyorsanız, bunu basitçe Koşullu Biçimlendirme Excel'deki özellik.

  • Seçiniz tüm aralık veya sütun.
  • Gitmek Koşullu Biçimlendirme -> Simge Setleri Ardından seçeneklerden istediğiniz simge setlerini seçin.

Adımlar bir tabloyu simgelere göre sıralama aşağıda verilmiştir.

Adımlar:

  • Açık Visual Basic Düzenleyicisi bir şey yok. Geliştirici sekmesi ve Ekleme a Modül kod penceresinde.
  • Kod penceresinde, aşağıdaki kodu kopyalayın ve yapıştırın.
 Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub 

Kodunuz artık çalışmaya hazır.

İşte,

  • xl5Oklar -> Biz seçtik 5 oktan oluşan set seçeneğinden Koşullu Biçimlendirme .
  • Ürün (1) -> Belirtilen önce ok simgesi türü.
  • Ürün (2) -> Belirtilen ikinci ok simgesi türü.
  • Ürün (3) -> Belirtilen üçüncü ok simgesi türü.
  • Ürün (4) -> Belirtilen dördüncü ok simgesi türü.
  • Ürün (5) -> Belirtilen beşinci ok simgesi türü.

  • Koşmak bu kod ve tablo şu şekilde olacaktır simgelere göre sıralanır .

Daha Fazla Oku: Excel'de Tablo Otomatik Sıralama Nasıl Yapılır (5 Yöntem)

Sonuç

Bu makale size aşağıdakileri nasıl yapacağınızı gösterdi tabloyu sıralama Excel'de VBA Umarım bu makale sizin için çok faydalı olmuştur. Konuyla ilgili herhangi bir sorunuz olursa sormaktan çekinmeyin.

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.