У наставку ћемо погледати програм у Екцел ВБА то насумично сортира податке (у овом примеру насумично сортира имена).
Ситуација:
1. Прво, декларишемо четири променљиве. Једну променљиву типа Стринг називамо ТемпСтринг, једну променљиву типа Интегер називамо ТемпИнтегер, једну променљиву типа Интегер називамо и, а једну променљиву типа Интегер називамо ј.
Дим темпСтринг Ас Стринг, темпИнтегер Ас Интегер, и Ас Интегер, ј Ас Интегер
2. У колону Б уписујемо 5 случајних бројева (по један за свако име). За ово користимо функцију радног листа РандБетвеен.
За и = 1 до 5
Ћелије (и, 2) .Вредност = Радни лист Функција.РандБет између (0, 1000)
Затим сам
Досадашњи резултат:
Користићемо бројеве поред сваког имена да сортирамо имена. Име са најнижим бројем прво, име са другим најнижим бројем, друго итд.
3. Покрећемо Доубле Лооп.
За и = 1 до 5
За ј = и + 1 до 5
4. Додајте следећи кодни ред:
Ако су ћелије (ј, 2) .Вредност <ћелије (и, 2) .Вредност Тада
Пример: за и = 1 и ј = 2, Венди и Рицхард се упоређују. Будући да Рицхард има мањи број, замијенили смо Венди и Рицхарда. Рицхард је сада на првој позицији. За и = 1 и ј = 3, упоређују се Рицхард и Јоост. Јоост има већи број па се ништа не дешава. На овај начин Екцел ВБА добија име са најмањим бројем на првој позицији. За и = 2, Екцел ВБА добија назив са другим најнижим бројем на другој позицији итд.
5. Ако је тачно, мењамо имена.
темпСтринг = Ћелије (и, 1) .Вредност
Ћелије (и, 1). Вредност = Ћелије (ј, 1). Вредност
Ћелије (ј, 1) .Вредност = темпСтринг
6. И мењамо бројеве.
темпИнтегер = Ћелије (и, 2) .Вредност
Ћелије (и, 2) .Вредност = Ћелије (ј, 2) .Вредност
Ћелије (ј, 2) .Вредност = темпИнтегер
7. Не заборавите да затворите наредбу Иф.
Крај Ако
8. Не заборавите да затворите две петље.
Даље ј
Затим сам
9. Тестирајте програм.
Резултат:
Напомена: можете додати ред који брише бројеве у колони Б. Још је лепше поставити бројеве сваког имена у низ, тако да се бројеви не стављају на ваш радни лист. Међутим, ради илустрације, одабрали смо да вредности ставимо на лист.