Excel VBA'da Numaraları Sıralama - Kolay Excel Makroları

İçindekiler

Aşağıda bir programa bakacağız Excel VBA'sı o sayıları sıralar.

Durum:

Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, Integer türünde üç değişken ve bir Range nesnesi tanımlıyoruz.

Dim i As Integer, j As Integer, temp As Integer, rng As Aralık

2. Range nesnesini rng A sütunundaki sayılarla başlatıyoruz. Bunun için CurrentRegion özelliğini kullanıyoruz. CurrentRegion, bir aralığın tam sınırlarını önceden bilmediğimizde kullanışlıdır (bu programın 9 sayı için ve aynı zamanda 90 sayı için de çalışmasını istiyoruz).

Set rng = Aralık("A1").MevcutBölge

3. İki For Next döngüsü başlatıyoruz.

i = 1 için rng.Count için
j = i + 1 için rng.Count

Açıklama: rng.Count 9'a eşittir, bu nedenle ilk iki kod satırı For i = 1 ila 9 ve For j = i + 1 ila 9'a düşer. i = 1 için j = 2, 3,… , 8 ve 9 kontrol edilir. .

4. Sayıları düzgün bir şekilde sıralamak için ilk sayıyı bir sonraki sayı ile karşılaştırırız. Bir sonraki sayı daha küçükse, sayıları değiştiririz. Aşağıdaki If Then ifadesini ekleyin.

Eğer rng.Cells(j) < rng.Cells(i) ise
Bitir

Yukarıdaki ifade doğruysa, sayıları değiştiririz.

Örneğin: i = 1 ve j = 2 için 2 ve 10 sayıları karşılaştırılır. Yukarıdaki ifade doğru değildir. Bu nedenle, sayıları değiştirmeye gerek yoktur. Excel VBA, j'yi 1 artırır ve i = 1 ve j = 3 için kod satırlarını tekrarlar. 5'in 2'den büyük olduğunu kolayca görebilirsiniz, dolayısıyla yine de sayıları değiştirmeye gerek yoktur. j = 4, j = 5 ve j = 6 için aynı sonucu elde ederiz. j = 7'ye ulaştığımızda yukarıdaki ifade doğrudur çünkü 1 2'den küçüktür.

5. Rakamları değiştiriyoruz. Excel VBA'nın sayıları doğru şekilde değiştirebilmesi için bir sayıyı geçici olarak geçici olarak saklarız. If ifadesine aşağıdaki kod satırlarını ekleyin.

'takas numaraları
temp = rng.Hücreler(i)
rng.Hücreler(i) = rng.Hücreler(j)
rng.Cells(j) = sıcaklık

6. İkinci For Next döngüsünü kapatıyoruz (If ifadesinin dışında).

sonraki j

i = 1 ve j = 7 için Excel VBA sayıları değiştirdi. Bu, birinci konumda 1 ve 7 konumunda 2 elde ettiğimiz anlamına gelir. Şimdi birinci konumda 1'imiz olduğuna göre, bu değeri 5 (j = 8 için) ve 4 (j = 9 için) ile karşılaştıracağız. Sayıları değiştirmeye gerek yoktur (1 en küçük sayıdır). Bu şekilde Excel VBA (i = 1 için) ilk konumdaki en küçük sayıyı alır. İkinci konumda en küçük ikinci sayıyı elde etmek için, Excel VBA, i = 2 için aynı adımları tekrarlar. Üçüncü konumda üçüncü en küçük sayıyı almak için, Excel VBA, i = 3, vb.

7. İlk For Next döngüsünü kapatın (If ifadesinin dışında).

sonraki ben

8. Programınızı test edin.

Sonuç:

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave