Vba'da aralık nasıl sıralanır?
VBA kullanarak bir hücre aralığını sıralamak için, sıralamak üzere tek bir anahtar (sütun) veya birden çok anahtar (birden fazla sütun için) ayarlamanıza olanak tanıyan “SIRALAMA” yöntemini kullanmanız gerekir. Ayrıca sıralamak istediğiniz sırayı (artan veya azalan) ayarlayabilir ve başlığınızın olup olmadığını belirtebilirsiniz.
VBA ile bir aralığı sıralama
- Sıralamak istediğiniz aralığı belirtmek için aralık nesnesini kullanın.
- Bir nokta yazın ve sıralama yöntemini girin.
- Sıralama için kullanmak istediğiniz anahtarı belirtin.
- Sıralama düzenini ayarlayın.
- Başlığınızın olup olmadığını belirtin.
Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes
Yukarıdaki kodda A1:A11 aralığını kullandınız ve artan düzende kullandığınız sıralama yönteminde aralıkta bir başlığınız olduğundan bahsettiniz.
VBA’nın sıralama yöntemini anlama
Bir aralığı sıralamak için bir makro yazmadan önce, sıralama yöntemini derinlemesine incelemek ve argümanlarını anlamak en iyisidir.
Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)
İşte gerçek hayatta kullanacağınız en önemli argümanlar.
- Anahtar : Burada sütununu sıralama temeli olarak kullanmak istediğiniz hücreyi tanımlamanız gerekir.
- Sıralama : Sütunu sıralamak istediğiniz sıra (artan/azalan).
- Başlık : Bir başlığınızın olup olmadığını veya VBA’nın tahmin etmesini isteyip istemediğinizi belirten bir sabit.
Azalan düzende sırala
Aşağıdaki kodda, miktar sütununu azalan düzende sıralamak için ‘xlDescending’i kullandım.
Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns
Sıralamak için birden fazla sütun (anahtar) kullanma
Bir aralığı sıralamak için birden çok sütun da kullanabilirsiniz. Aşağıdaki tablodan, çalışan adları ve şehirleri içeren birden fazla girişinizin olduğu ve adı ve şehri kullanarak sıralama yapmanız gereken bir örneği ele alalım.
Kullanmanız gereken kod aşağıdadır:
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes
Kodda gördüğünüz gibi key1 ve key2’ye sahipsiniz. Anahtar1’de çalışan adının bulunduğu sütun var ve anahtar2’de şehir sütunu var. Her iki sütun için de sıralama düzeni artan şekildedir ve başlıklar oradadır.
Not: Bunu, anahtarları ve düzeni kullanarak sıralama yapmak için temel olarak kullanmak istediğiniz herhangi bir sütun olarak kullanabilirsiniz.
Kader yönünü değiştirme
Normalde Excel’de verileri sıraladığınızda, varsayılan olarak sütunları kullanarak sıralama yapabilirsiniz. Ancak sıralama seçeneklerinden sıralama yönünü yukarıdan aşağıya yerine soldan sağa değiştirebilirsiniz.
Benzer şekilde, sıralama yönteminde yönlendirmeyi ( link ) değiştirmek için bir argümanınız var.
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows