Сортирање бројева у програму Екцел ВБА - Једноставни макрои програма Екцел

Преглед садржаја

У наставку ћемо погледати програм у Екцел ВБА то сортира бројеве.

Ситуација:

Поставите командно дугме на свој радни лист и додајте следеће редове кода:

1. Прво, декларишемо три променљиве типа Интегер и један Ранге објекат.

Дим и Ас Интегер, ј Ас Интегер, темп Ас Интегер, рнг Ас Ранге

2. Покрећемо објект Ранге рнг бројевима у колони А. За то користимо својство ЦуррентРегион. ЦуррентРегион је користан када унапред не знамо тачне границе опсега (желимо да овај програм ради за 9 бројева, али и за 90 бројева).

Подесите рнг = опсег ("А1"). ЦуррентРегион

3. Покрећемо две петље Фор Нект.

За и = 1 За рнг.Цоунт
За ј = и + 1 За рнг.Цоунт

Објашњење: рнг.Цоунт је једнак 9, па се прве две линије кода своде на Фор и = 1 до 9 и Фор ј = и + 1 до 9. За и = 1, проверава се ј = 2, 3,…, 8 и 9 .

4. Да бисмо правилно сортирали бројеве, упоредимо први број са следећим. Ако је следећи број мањи, мењамо бројеве. Додајте следећу наредбу Иф Тхен.

Ако је рнг.Целлс (ј) <рнг.Целлс (и) Тада
Крај Ако

Ако је горња изјава тачна, мењамо бројеве.

На пример: за и = 1 и ј = 2, упоређују се бројеви 2 и 10. Горе наведена изјава није тачна. Дакле, нема потребе да мењате бројеве. Екцел ВБА повећава ј за 1 и понавља линије кода за и = 1 и ј = 3. Лако можете видети да је 5 веће од 2, па и даље нема потребе да мењате бројеве. Добијамо исти резултат за ј = 4, ј = 5 и ј = 6. Када дођемо до ј = 7, горња тврдња је тачна јер је 1 мање од 2.

5. Замењујемо бројеве. Привремено складиштимо један број на темп, тако да Екцел ВБА може правилно да замени бројеве. Додајте следеће редове кода у наредбу Иф.

замени бројеве
темп = рнг. Ћелије (и)
рнг.Целлс (и) = рнг.Целлс (ј)
рнг. Ћелије (ј) = темп

6. Затварамо другу петљу Фор Нект (Изван наредбе Иф).

Даље ј

За и = 1 и ј = 7, Екцел ВБА је заменио бројеве. То значи да добијамо 1 на првој позицији и 2 на позицији 7. Сада када имамо 1 на првој позицији, упоредићемо ову вредност са 5 (за ј = 8) и 4 (за ј = 9). Нема потребе да мењате бројеве (1 је најмањи број). На овај начин Екцел ВБА добија (за и = 1) најмањи број на првој позицији. Да би добио други најмањи број на другој позицији, Екцел ВБА понавља исте кораке за и = 2. Да би добио трећи најмањи број на трећој позицији, Екцел ВБА понавља исте кораке за и = 3 итд.

7. Затворите прву петљу Фор Нект (Изван наредбе Иф).

Затим сам

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

Резултат:

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave