Нижче ми розглянемо програму в 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.
Для i = 1 до 5
Клітинки (i, 2). Значення = Функція робочого аркуша. Ранбіт між (0, 1000)
Далі i
Поки що результат:
Ми будемо використовувати цифри біля кожного імені для сортування імен. Ім’я з найменшим числом першим, ім’я з другим найменшим числом, друге тощо.
3. Запускаємо подвійну петлю.
Для i = 1 до 5
Для j = i + 1 до 5
4. Додайте наступний рядок коду:
Якщо клітинки (j, 2). Значення <клітинки (i, 2). Значення тоді
Приклад: для i = 1 та j = 2 порівнюються Венді та Річард. Оскільки у Річарда менший номер, ми обмінюємося Венді та Річардом. Зараз Річард на першій позиції. Для i = 1 та j = 3 порівнюються Річард та Джост. Joost має більший номер, тому нічого не відбувається. Таким чином, Excel VBA отримує ім’я з найменшим номером на першій позиції. Для i = 2 Excel VBA отримує ім’я з другим найнижчим номером на другій позиції тощо.
5. Якщо це правда, ми змінюємо імена.
tempString = Осередки (i, 1). Значення
Клітинки (i, 1). Значення = Осередки (j, 1). Значення
Клітинки (j, 1). Значення = tempString
6. І міняємо місцями цифри.
tempInteger = Осередки (i, 2). Значення
Клітинки (i, 2). Значення = Осередки (j, 2). Значення
Клітинки (j, 2). Значення = tempInteger
7. Не забудьте закрити оператор If.
Закінчити Якщо
8. Не забудьте закрити дві петлі.
Далі j
Далі i
9. Перевірте програму.
Результат:
Примітка: ви можете додати рядок, який видаляє числа у стовпці В. Ще приємніше розмістити номери кожного імені в масиві, щоб на вашому аркуші не було жодного числа. Однак для ілюстрації ми вибрали розміщення значень на аркуші.