/ / Slučajnim redoslijedom podataka u programu Excel VBA

Nasumično sortiranje podataka u programu Excel VBA

U nastavku ćemo pogledati program u Excel VBA da nasumično razvrstava podatke (u ovom primjeru nasumično sortira imena).

Situacija:

Nasumično sortiranje podataka u programu Excel VBA

1. Prvo, izjavljujemo četiri varijable. Jedna varijabla tipa String zovemo TempString, jednu varijablu tipa Integer koju nazivamo TempInteger, jednu varijablu tipa Integer koju zovemo i jednu varijablu tipa Integer koju nazivamo j.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. Zapisujemo 5 slučajnih brojeva u stupac B (jedan za svako ime). Za to koristimo funkciju radnog lista RandBetween.

For i = 1 To 5
    Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Next i

Do sada:

Do sada

Upotrijebit ćemo brojeve pored svakog naziva za sortiranje imena. Naziv s najnižim brojem, ime s drugim najnižim brojem, drugi, itd.

3. Pokrećemo dvostruku petlju.

For i = 1 To 5
    For j = i + 1 To 5

4. Dodajte sljedeću liniju koda:

If Cells(j, 2).Value < Cells(i, 2).Value Then

Primjer: za i = 1 i j = 2, uspoređeni su Wendy i Richard. Budući da Richard ima niži broj, zamijenimo Wendyja i Richarda. Richard je sada na prvom mjestu. Za i = 1 i j = 3 uspoređuju se Richard i Joost. Joost ima veći broj pa se ništa ne događa. Na taj način Excel VBA dobiva naziv s najnižim brojem na prvoj poziciji. Za i = 2, Excel VBA dobiva ime s drugim najnižim brojem na drugom mjestu itd.

5. Ako je istina, zamijenimo imena.

tempString = Cells(i, 1).Value
Cells(i, 1).Value = Cells(j, 1).Value
Cells(j, 1).Value = tempString

6. I mijenjamo brojeve.

tempInteger = Cells(i, 2).Value
Cells(i, 2).Value = Cells(j, 2).Value
Cells(j, 2).Value = tempInteger

7. Ne zaboravite zatvoriti If izjavu.

End If

8. Ne zaboravite zatvoriti dvije petlje.

    Next j
Next i

9. Ispitajte program.

Proizlaziti:

Nasumično sortiranje rezultata podataka

Bilješka: možete dodati liniju koja briše brojeve u stupcu B. To je još ljepše staviti brojeve svakog imena u niz, tako da brojevi nisu postavljeni na vašem radnom listu. Međutim, za ilustrativnu svrhu "odabrali smo postaviti vrijednosti na listi.

Također pročitajte: