/ / Сортувати номери в Excel VBA

Сортувати номери в Excel VBA

Нижче ми розглянемо програму в Росії Excel VBA це сортує числа.

Ситуація:

Приклад сортування номерів

Помістіть на вашій робочій клавіші команду та додайте наступні кодові рядки:

1. По-перше, ми оголошуємо три змінні типу Integer і один об'єкт Range.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2 Ми ініціалізуємо об'єкт Range rng з номерами в стовпці A. Ми використовуємо властивість CurrentRegion для цього. CurrentRegion корисний, коли ми не знаємо точні межі діапазону заздалегідь (ми хочемо, щоб ця програма працювала на 9 номерів, але і на 90 номерів).

Set rng = Range("A1").CurrentRegion

3. Ми запускаємо два для наступних циклів.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

Пояснення: rng.Count дорівнює 9, тому перші дві кодові рядки зменшуються до = 1 до 9 і для j = i + 1 до 9. Для i = 1, j = 2, 3, ..., 8 і 9 перевіряються.

4. Щоб правильно сортувати номери, ми порівнюємо перше число з наступним номером. Якщо наступний номер менший, ми обмінюємо числа. Додайте наступне твердження If Then.

If rng.Cells(j) < rng.Cells(i) Then

End If

Якщо вищенаведене твердження є істинним, ми обмінюємо числа.

Наприклад: для i = 1 і j = 2, порівнюються числа 2 і 10. Вищенаведене твердження не відповідає дійсності. Таким чином, немає необхідності обмінюватися числами. Excel VBA збільшує j на 1 і повторяє кодові рядки для i = 1 і j = 3. Ви можете легко побачити, що 5 більше, ніж 2, так що ще немає необхідності обмінюватися числами. Ми отримуємо такий самий результат для j = 4, j = 5 і j = 6. Коли ми приходимо до j = 7, вищенаведене твердження вірно, оскільки 1 менше, ніж 2.

5. Ми обмінюємо числа. Ми тимчасово зберігаємо одне число тимчасово, щоб Excel VBA міг змінити ці цифри належним чином. Додайте наступні кодові рядки в операторі "if".

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. Ми закриваємо другий для наступного циклу (за межами заяви).

Next j

Для i = 1 і j = 7, Excel VBA помінявномери Це означає, що ми отримуємо 1 в першій позиції і 2 в позиції 7. ​​Тепер, коли у нас на першій позиції 1, ми порівняємо це значення з 5 (для j = 8) і 4 (для j = 9). Немає необхідності обмінюватися числами (1 - найменше число). Таким чином, Excel VBA отримує (для i = 1) найменше число на першій позиції. Щоб отримати другий найменший номер у другій позиції, Excel VBA повторює точно такі ж самі кроки для i = 2. Щоб отримати третє найменше число у третьому положенні, Excel VBA повторяє ті ж самі кроки для i = 3 і т. Д.

7. Закрийте перший для наступного циклу (за межами заяви).

Next i

8. Перевірте свою програму.

Результат:

Сортувати номери в Excel VBA

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