Aşağıda bir programa bakacağız Excel VBA'sı o verileri rastgele sıralar (bu örnekte isimleri rastgele sıralar).
Durum:
1. İlk önce dört değişken tanımlıyoruz. String türünden bir değişkene TempString, Tamsayı türünden bir değişkene TempInteger, Tamsayı türünden bir değişkene i ve Tamsayı türünden bir değişkene j diyoruz.
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
2. B sütununa 5 rastgele sayı yazıyoruz (her isim için bir tane). Bunun için RandBetween çalışma sayfası işlevini kullanıyoruz.
i = 1 ila 5 için
Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
sonraki ben
Şimdiye kadar sonuç:
İsimleri sıralamak için her ismin yanındaki sayıları kullanacağız. Önce en küçük sayıya sahip ad, ikinci en küçük sayıya sahip ad, ikinci vb.
3. Bir Çift Döngü başlatıyoruz.
i = 1 ila 5 için
j = i + 1 ila 5 için
4. Aşağıdaki kod satırını ekleyin:
If Cells(j, 2).Value < Cells(i, 2).Value O zaman
Örnek: i = 1 ve j = 2 için Wendy ve Richard karşılaştırılır. Richard'ın sayısı daha düşük olduğu için Wendy ve Richard'ı değiştiririz. Richard şu anda ilk sırada. i = 1 ve j = 3 için Richard ve Joost karşılaştırılır. Joost'un daha yüksek bir numarası var, bu yüzden hiçbir şey olmuyor. Bu şekilde Excel VBA, ilk sırada en düşük sayıya sahip adı alır. i = 2 için, Excel VBA, ikinci konumdaki ikinci en düşük sayıya sahip adı alır, vb.
5. Eğer doğruysa, isimleri değiştiririz.
tempString = Hücreler(i, 1).Value
Hücreler(i, 1).Değer = Hücreler(j, 1).Değer
Cells(j, 1).Value = tempString
6. Ve sayıları değiştiriyoruz.
tempTamsayı = Hücreler(i, 2).Value
Hücreler(i, 2).Değer = Hücreler(j, 2).Değer
Hücreler(j, 2).Value = tempTamsayı
7. If deyimini kapatmayı unutmayın.
Bitir
8. İki döngüyü kapatmayı unutmayın.
sonraki j
sonraki ben
9. Programı test edin.
Sonuç:
Not: B sütunundaki sayıları silen bir satır ekleyebilirsiniz. Her ismin numaralarını bir diziye yerleştirmek daha da iyidir, böylece çalışma sayfanıza hiçbir sayı yerleştirilmez. Ancak, açıklama amacıyla değerleri sayfaya yerleştirmeyi seçtik.