/ / Случайно сортиране на данни в Excel VBA

Случайно сортиране на данни в Excel VBA

По - долу ще разгледаме програма в Excel VBA че случайно сортира данните (в този пример случайно сортира имената).

Ситуация:

Случайно сортиране на данни в Excel VBA

1. Първо, декларираме четири променливи. Една променлива от тип String, която наричаме TempString, една променлива от тип Integer, която наричаме TempInteger, една променлива от тип Integer, която наричаме i, и една променлива от тип Integer, която наричаме j.

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

2. Пишем 5 произволни числа в колона Б (по едно за всяко име). За тази цел използваме функцията RandBetween за работен лист.

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

Резултат досега:

Резултат досега

Ще използваме номерата до всяко име, за да сортираме имената. Името с най-ниското число първо, името с второто най-ниско число, второто и т.н.

3. Започваме двойна линия.

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

4. Добавете следния ред на кода:

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

Пример: за i = 1 и j = 2, Wendy и Richard се сравняват. Защото Ричард има по-малък брой, заменяме Уенди и Ричард. Ричард е на първо място. За i = 1 и j = 3, Richard и Joost се сравняват. Джоуст има по-голям брой, така че нищо не се случва. По този начин Excel VBA получава името с най-ниското число на първата позиция. За i = 2, Excel VBA получава името с второто най-ниско число на втората позиция и т.н.

5. Ако е вярно, смените имената.

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

6. И разменяме номерата.

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

7. Не забравяйте да затворите израза If.

End If

8. Не забравяйте да затворите двата цикъла.

    Next j
Next i

9. Изпробвайте програмата.

Резултат:

Резултат от произволно сортиране на данните

Забележка: можете да добавите ред, който изтрива номерата в колона Б. Още по-хубаво е да поставите номерата на всяко име в масив, така че няма да има номера на вашия работен лист.Въпреки това за илюстративна цел избрахме да поставите на листа.

Също така се чете: