Excel VBA'da Verileri Rastgele Sıralama - Kolay Excel Makroları

İçindekiler

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.

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

wave wave wave wave wave