/ / Випадкове сортування даних у 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 випадкових чисел до стовпця B (по одному для кожного імені). Для цього використовується функція робочого листа 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 порівнюються Венді та Річард. Оскільки Річард має меншу кількість, ми обмінюємо Венді та Річарда. Річард зараз на першій позиції. Для i = 1 і j = 3 порівнюються Річард і Джост. 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. Не забудьте закрити заявку.

End If

8. Не забудьте закрити два петлі.

    Next j
Next i

9. Перевірте програму.

Результат:

Випадково сортувати результати даних

Примітка: ви можете додати рядок, який видаляє номери у стовпці B. Це навіть краще розмістити номери кожного імені в масиві, тому на ваш робочий аркуш не розміщуються жодні цифри. Проте для прикладу ми вирішили розмістити значення на аркуші.

Також читайте: