Сортиране на номера в Excel VBA - Лесни Excel макроси

Съдържание

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

Ситуация:

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

1. Първо, декларираме три променливи от тип Integer и един Range обект.

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

2. Инициализираме Range обекта rng с числата в колона А. Използваме свойството CurrentRegion за това. CurrentRegion е полезен, когато не знаем предварително точните граници на диапазон (искаме тази програма да работи за 9 числа, но и за 90 числа).

Задайте rng = Обхват ("A1"). CurrentRegion

3. Започваме два цикъла For Next.

За i = 1 За rng.Count
За j = i + 1 За rng.Count

Обяснение: rng.Count е равно на 9, така че първите две кодови редове се свеждат до For i = 1 до 9 и For j = i + 1 до 9. За i = 1, j = 2, 3,…, 8 и 9 се проверяват .

4. За да сортираме правилно числата, сравняваме първото число със следващото. Ако следващото число е по -малко, разместваме числата. Добавете следния израз If If.

Ако rng.Cells (j) <rng.Cells (i) Тогава
Край Ако

Ако горното твърдение е вярно, разместваме числата.

Например: за 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.

'размяна на номера
temp = rng. Клетки (i)
rng.Cells (i) = rng.Cells (j)
rng.Клетки (j) = temp

6. Затваряме втория цикъл For Next (Извън оператора If).

Следващ 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. Затворете първия цикъл For Next (Извън оператора If).

Следва i

8. Тествайте програмата си.

Резултат:

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave