9 алгоритмов сортировки на VBA

В статье разберем 9 видов сортировок, разглядим сущность этих алгоритмов. Скорости, сложность алгоритмов и практическое их применение оставим за скобками. Задачка статьи показать, что одну и туже задачку можно решать разными методами, показать практическое применение языка VBA и посодействовать начинающим в его освоении.

Скачать файлик можно по кнопочке выше. Поехали!

Предварительный шаг

Перед тем как начинать писать методы мало подготовимся. Сделаем общую константу n для хранения размера массивов. Вставим на лист диаграмму, чтоб выслеживать как все работает. В коде объявим объект нашей диаграммы, на которой будем просматривать ход процесса сортировки. Чтоб не дублировать код в любом методе сортировки мы будем применять функцию инициализации Init().

Чтоб наша диаграмма с результатом не подвисала и обновлялась напишем такую функцию.

В качестве массивов будем применять спектр ячеек A1:Y1. Напишем еще одну короткую функцию для перемешивания этого массива, поточнее наполнения его числами от 1 до 25 в случайном порядке.

Сейчас все готово, давайте писать методы сортировки.

Сортировка пузырьком

Пузырьковая сортировка (либо сортировка ординарными обменами) пожалуй самый неэффективный метод сортировки и в тоже время пожалуй самый узнаваемый.

Сущность метода в прохождении в цикле по всем элементами массива и в попарном сопоставлении текущего элемента со последующим. Если текущий элемент массива больше (для сортировки по возрастанию и меньше для сортировки по убыванию) чем последующий, то эти два элемента изменяются вместе местами. Ход метода смотрите на последующей диаграмме.

Вот код сортировки данным методом на VBA. Еще стоит направить внимание на переменную Flag она служит индикатором того, что массив досрочно отсортирован и можно заблаговременно выйти из цикла и уменьшить вычислительные ресурсы.

Дальше описана процедура Swap для перестановки ячеек местами. Опосля перестановки ячеек вызывается процедура ChartRefresh обновления диаграммы.

Сортировка перемешиванием

Этот метод является разновидностью пузырьковой сортировки. Также этот метод именуют Шейкерной сортировкой либо двунаправленной. Основное отличие от обыкновенной сортировки пузырьком в том, что массив поначалу просматривается слева вправо и наибольший элемент {перемещается} вправа, а опосля мы проходим по массиву справа влево (от крайнего отсортированного элемента) и меньший элемент {перемещается} на лево. Вот на графике ясно это видно.

Метод мало больше, но по трудности аналогичный, вот его код на VBA.

Сортировка выбором

Тоже довольно обычный метод сортировки. Сущность его заключается в поиске малого значения (наибольшего для сортировки по убыванию) и обмене отысканного значения с первым неотсортированным значением. Т.е. отыскали 1-ое малое значение, поменяли его с первым элементом, отыскали 2-ое малое — поменяли со вторым элементом. График выходит последующий:

Объединение сортировки пузырьком и сортировки выбором

Можно убыстрить метод сортировки пузырьком объединив его с методом сортировки выбором. Для этого необходимо определять малый элемент во внутреннем цикле и опосля всякого прохода по списку обменивать отысканный малый элемент с первым неотсортированным слева. Таковым образом, мы сокращаем в 2 раза число перестановок, но при всем этом увеличиваем в 2 раза число сравнений.

Код различается лишь 2 строками:

Сортировка вставками

Вот определение сортировки с википедии

Это метод, в каком элементы входной последовательности просматриваются по одному, и любой новейший поступивший элемент располагается в подходящее пространство посреди ранее упорядоченных частей.

Иными словами мы во наружном цикле проходим по всем элементам массива, а во внутреннем цикле сравниваем правый элемент с уже отсортированными элементами слева и перемещаем его по мере необходимости. Ах так это смотрится зрительно:

Код тоже думаю окажется вам довольно обычным.

Гномья сортировка

Зрительно отличия от сортировки вставками нет, но в код совсем иной потому что нет никаких вложенных циклов. Метод в цикле проходит по всем элементам, сравнивая текущий элемент с предшествующим. Если элементы стоят правильно перебегает к последующему, если нет, меняет их местами и перебегает к предшествующему элементу.

Сортировка слиянием

Обыкновенные методы сортировки мы разобрали, сейчас давайте разглядим наиболее сложные виды сортировок. Хотя основное осознать сущность метода и его реализация уже не будет казаться сложной.

Сущность метода сортировки слиянием заключается в том, чтоб разбить начальный массив на наиболее маленькие массивы, отсортировать любой по отдельности, а опосля соединить результаты.

Для этого начальный массив разбивается на 2 части напополам (ну либо практически напополам если количество нечетное), любая половинка разбивается еще напополам и так до того времени, пока мы не получим массивы состоящие из 1 элемента. Опосля прохождения процедуры разбивки на части, слияние каждой части и ее сортировка. К примеру, массив содержит числа 5 2 1 3 4. Разбиваем его на две части: 5,2,1 и 3,4 . Первую часть 5,2,1 разбиваем еще на две части 5,2 и 1. Дальше 5,2 еще на две части 5 и 2. А сейчас идем назад, сортируем и сливаем массивы. Выходит 2,5 и 1, объединим далее — 1,2,5 , крайняя итерация отсортирует начальный массив 1 2 3 4 5. При слиянии учитывается тот факт, что массивы уже отсортированы по отдельности, потому объединение проходит резвее.

Вот визуализация работы метода:

Код состоит из 2-ух частей. 1-ая MergeSort — рекурсивная функция разделения массивов, т.е. эта функция запускает саму себя. Это происходит до того времени, пока размер массива больше 1, по другому запускается функция MergeSort для каждой из частей.

Опосля того как массивы разобьются запускается функция Merge(left, right), которая сортирует и соединяет воединыжды массив назад.

В качестве сортировки и объединения можно применять разные методы, к примеру таковой. Если кто-то предложит наиболее роскошное решение — пишите в комментах.

Потому что функция у нас рекурсивная, то 1-ый ее пуск нужно создать из отдельной процедуры, вот так:

Стремительная сортировка

Метод резвой сортировки — один из самых стремительных и действенных и нередко употребляется в практике. При всем этом он довольно обычный.

Сущность метода в последующем:

  1. Избрать из массива опорный элемент. К примеру, взять элемент посреди массива (в целом это быть может хоть какой из частей).
  2. Сопоставить другие элементы массива с избранным опорным частей и разбить массив на 2 части:
    • элементы, которые меньше либо равны опорному элементу;
    • элементы, которые больше опорного.
  3. Дальше пункты 1 и 2 повторяются рекурсивно для каждой части массива, до того времени пока размер части состоит из наиболее чем 1 элемента.

На визуализации к огорчению что-то рассмотреть трудно. Метод довольно стремительно отрабатывает:

Вот код данного метода на VBA.

Пуск рекурсивной функции резвой сортировки запустим из отдельного способа.

Пирамидальная сортировка

Пирамидальная сортировка либо как еще ее именуют "Сортировка кучей" употребляет в собственном методе двоичное дерево.

Это такое дерево, для которого выполнены последующие условия:

  1. Значение в хоть какой верхушке не меньше, чем значения её потомков.
  2. Длина ветвей дерева не различается друг от друга наиболее чем на 1 слой.
  3. Крайний слой заполняется слева вправо без «дырок».

Вот вам наглядный пример дерева, которое можно отыскать на википедии:

Это дерево можно представить в виде последующего массива, где для хоть какого элемента A[i] потомками являются элементы A[2i] и A[2i+1].

Т.е. для всякого элемента кучи справедливы последующие условия: A[i] >= A[2i] и A[i] >= A[2i+1].

Метод пирамидальной сортировки состоит из последующих шагов:

  1. Построение массива в виде двоичного дерева.
  2. Исключение корня дерева (наибольшего значения массива) из массива и перенос его в конец последовательности.
  3. Опосля исключения корня дерево перестраивается и его корень снова отсекается и переносится в конец.
  4. Так происходит до того времени, пока вся последовательность не отсортируется.
Интересно почитать:  Как число записать как число в excel

Вот зрительное отображение выполнения этого метода:

Ниже код пирамидальной сортировки на VBA. Который сформировывает двоичную кучу и корень данной нам кучи переносит в конец последовательности. Так происходит n раз.

Многоуровневая сортировка массивов в VBA: разбор примера

Для сортировки массивов в VBA можно писать собственные функции и процедуры основанные, к примеру, на способах пузырьковой сортировки, сортировки подсчётом, сортировки Хоара и т.д. Тем не наименее, подобные решения будут представлять из себя довольно сложные макросы даже в этом случае, если предназначаться они будут для сортировки только одномерных массивов.

В случае же многоуровневой сортировки массивов (к примеру, сначала сортировка значений «x» по возрастанию, а потом сортировка значений «у» по убыванию) написание схожих процедур практически практически теряет смысл, потому что уровень трудности написания макросов для схожих целей увеличивается экспоненциально и итоговые макросы при всем этом совершенно точно не будут хорошими по производительности, потому что самой производительным способом сортировки в VBA является сортировка средствами Excel.

Пример многоуровневой сортировки:

Многоуровневая сортировка массивов в VBA: разбор примера Vba, Microsoft Excel, Видео, Длиннопост

Потому в этом посте хотелось бы представить подход к решению задачки, когда требуется программными средствами произвести сортировку массивов в VBA. Заключается он в:

1. Экспорте значений из массива на рабочий лист

2. Многоуровневой сортировке значений на рабочем листе средствами Excel

3. Оборотном импорте уже просортированных значений в массив

Так как всё это детально обрисовывать в одном посте будет очень трудно, предлагаю поглядеть видео, в каком я тщательно растолковал, как можно написать схожее решение (в каком, при всем этом, благодаря умным таблицам, все указания диапазонов являются полностью оживленными):

Найдены вероятные дубликаты

MS, Libreoffice & Гугл docs

451 пост 12.5K подписчиков

Правила общества

2. Публиковать посты надлежащие теме общества

3. Проявлять почтение к юзерам

4. Не допускается публикация постов с вопросцами, ответы на которые просто отыскать при помощи хоть какого поискового веб-сайта.

По интересующим вопросцам можно обратиться к создателю поста идентичной темы, или к юзерам в комментах

Принципиально — общество призвано посодействовать, а не постебаться над постами создателей! Помните, не все владеют 100 процентными познаниями и способностями работы с Office. Хотя вы и сможете написать, что вы знали о описываемом приёме ранее, пост неинтересный и т.п. и т.д., просьба воздержаться от схожих объяснений, заместо этого предложите метод лучше, или дополните его собственной полезной информацией и для вас будут признательны юзеры.

Утверждения вроде «пост — отстой», это оскорбление создателя и будет наказываться баном.

Я бы употреблял для данной нам задачки рекордсет. Считываем данные с книжки и сортируем SQL запросом. Да, это доборная библиотека, но она есть практически во всех сборках кабинета

Нормально применять DB на QSL.

Макросы. Изучаем редактор VBE. Академия Excel

Давайте разбираться где происходит написание макросов? В Excel существует интегрированный редактор Visual Basic Editor (VBE), в каком фактически и происходит создание макросов с нуля, редактирование имеющийся, удаление ненадобных.

Посмотрев урок, Вы научитесь настраивать редактор под себя, познакомитесь с новеньким понятием Модуль (узнаете главные операции с ними).

01:05Как попасть в редактор VBE

01:41Kак возвратиться к Excel

02:32Настройка наружного вида редактора

04:24Перемещение окон редактора

06:20Окно проекта. Знакомство с модулями.

07:26Создание модулей

08:04Удаление модулей

09:28Переименование модуля

11:27Форматирование кода макроса

Счётчик распечатанных страничек сетевого принтера — SNMP в Excel

Продолжаю пороть чушь, втирать дичь, творить неблагопристойное и по-всякому издеваться над здравым смыслом — и всё это не выходя их Excel.

Опосля того, как я немношк попинговал, пора применить те выработки в какой-либо практической задачке — пинг ради пинга смотрится мало глупо.

Мысль, как и в прошедший раз, украдена на том же Youtube-канале у говорящего бота. Правда, мне не любопытно состояние портов маршрутизатора — это не моя неувязка. А вот выяснить сколько отпечатали-отсканировали мои принтеры-сканеры, будет очень полезно. Тем наиболее, что для этого не надо никуда ходить и даже не надо ставить и учить забикс. Всего-то пятнадцать минут от идеи до реализации в Excel. Уверен, вы справитесь резвее.

Для начала, что такое SNMP: фактически хоть какое устройство, имеющее сетевой интерфейс, умеет в этот протокол, который дозволяет удалённой стороне получить набор метрик работы этого устройства и управлять им. В этом случае из всех тыщ характеристик меня интересует счётчик распечатанных и отсканированных страничек.

Если в 2-ух словах: отправляем принтеру команду с определённым идентификатором, получаем ответ.

К огорчению, нет всепригодного метода выяснить эти идентификаторы — любой производитель употребляет собственный набор идентификаторов, который также может различаться от модели к модели. С иной стороны, всё необходимое просто гуглятся, ибо употребляется в шаблонах для Zabbix. Далее остаётся поглядеть xml-файл и отыскать в нём подходящую строчку. Иной вариант — прочесть ВСЕ ответы устройства на ВСЕ запросы и отыскать нужные значения. К счастью, программ для этого полным-полно, а разобраться в потоках цифр не весьма трудно. К примеру SnmpB.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

Указываем IP-адрес принтера, SNMPv2 (в хоть какой непонятной ситуации выбирай SNMPv2) и запускаем сканирование — правой клавишей Walk.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

На получение результата может уйти пару минут.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

Дальше остаётся скопировать итог в блокнот (как досадно бы это не звучало, поиск в SnmpB не работает) и отыскать текстовое значение счётчика, которое необходимо за ранее подсмотреть или через веб-интерфейс принтера, или ещё как.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

Описанный чуть повыше вариант — отыскать шаблон для забикса и поглядеть что у него снутри.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

Для всех принтеров и МФУ (все — Kyocera), до которых я сумел достать, счётчик распечатанных страничек отдаётся по команде «.1.3.6.1.4.1.1347.43.10.1.1.12.1.1», а отсканированных — «.1.3.6.1.4.1.1347.46.10.1.1.5.3». Домашний Ricoh отдаёт счётчик по команде «.1.3.6.1.4.1.367.3.2.1.2.19.1.0». Единственный доступный HP LaserJet 2015 совершенно никак не реагирует на SNMP, но он уже практически сдох, так что не жаль.

Далее скучновато: берём VBA, пишем

Всё, остаётся обернуть эти строчки в цикл по списку принтеров, и ликовать тому, что одна постоянная задачка стала решаться мало проще. Файл лежит на Yandex.Диске, правда, быстрее всего, он будет бесполезен — навряд ли у кого-то есть полсотни киосер.

Счётчик распечатанных страниц сетевого принтера - SNMP в Excel Microsoft Excel, Vba, Длиннопост

Да, почему на картинах идентификаторы начинаются с iso, а команды в коде — с «.1». Просто смиритесь. Либо прочитайте описание эталона.

VBA Sort Range

Sorting a range in VBA is done by range.sort method, it is a property of the range method with which a user can sort a range in order, the arguments for this function are the Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, all the arguments for this function are optional.

As part of the data organizing or data structuring, it is important to sort the data and make it organized. A similar thing is available with VBA as well, so a common question about new learners of VBA is how we can make use of this sort option as part of VBA automation, and this article guides you through the VBA Sort range in detail.

Интересно почитать:  Как в excel сделать перечеркнутый текст

With excel, we all are familiar with the option of the sort which is available under the DATA tab.

VBA Sort Range Example 1

Sort Option in VBA

To use the sort option, first, we need to decide what our data range is and mention the same data range by using the RANGE object in VBA, then only we can access the “Sort” option in VBA. For example, assume my data range is from A1 to D10, then we can provide the data range as follows.

Code:

Now put a dot and select the “SORT” method.

Code:

Below is the syntax of the SORT method of range. Though syntax has different arguments, we don’t need all of them for our VBA coding VBA Coding VBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task. read more , so we need only a few elements.

[Key1]: In the data range that we are sorting, we need to specify which column we need to sort. For example, in the data range of A1: D10, if we want to sort the data based on column B, then [Key1] will be Range(“B1”).

[Order1]: The mentioned column in the [Key1] argument should be sort in what order. We can choose two options here “xlAscending” or “xlDescending.”

Header: The mentioned data range has headers or not. If yes, we can supply “xlYes” or else we can supply “xlNo.”

Example of Sort Range in VBA

Let’s take the example of excel VBA sort range to understand this in a better manner.

For example, look at the below data structure.

 Example 1.4

We have data from A1 to E17, so first, we will sort the data based on “Country-wise.” Follow the below steps to write the code to sort the data.

Code:

Step 2: First, mention the data range by using the RANGE object.

Code:

Step 3: Now choose the “Sort” method of the Range object.

Code:

Step 4: Since we are sorting the data based on “Country-wise,” our Key 1 argument column will be Range (“B1”).

Code:

Step 5: Once the required column is mentioned, we need to mention in what order we need to sort the data, and “Order1” will be “xlAscending” order.

Code:

Step 6: Our data has headers, so Header will be “xlYes.”

Code:

We have mentioned all the elements which are required to sort the data. Execute the code by pressing the F5 function and key and see the result.

Output:

VBA Sort Range Example 1.11

Data has been sorted based on Country names in the order of A to Z.

Now assume we need to sort the data based on Country-wise also we need to sort the “Gross Sales” from highest to lowest. In such cases, we need to make use of Key2 and Order2 arguments as well.

After mentioning Key1 & Order1, let’s choose Key2.

Code:

Example 1.12.0

Since we are sorting the data based on the “Gross Sales” column, our Key2 column name will be Range(“D1”).

Code:

VBA Sort Range Example 1.13

Once the Key2 is specified, we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument. Since we are sorting the sales value from largest to smallest, we can choose “xlDescending” order.

Code:

After that, mention the Header argument as “xlYes.” Now run the code and see what happens.

Output:

 Example 1.14

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA, and to access this method, we need to specify what the range of cells we are going to sort.
  • If the data range includes headers, then we need to choose the header option as “xlYes”, if not, we can choose “xlNo.”

Recommended Articles

This has been a guide to VBA Sort Range. Here we discuss how to sort range using the specific column in VBA along with excel example and downloadable excel templates. You may also look at these useful functions in excel –

Sorting ListBoxes with VBA

I received a question from a reader recently, who wanted to sort a Listbox using VBA. As this seemed like a common problem which many users could face, I decided to dedicate a bit of time to create a more reusable solution.

  • UserForm Listboxes for custom VBA solutions
  • Form Control Listboxes for worksheet based solutions

This post may seem like a lot of VBA code, but are comments inserted into the code to understand what is happening. Within the text I included my thought process, to illustrate how I approached the scenario. Whether my approach is right or wrong, it’s how I think about VBA.

  • Standard order (the order the elements are added to the list box)
  • Reverse order (the reverse of the standard order)
  • A-Z sort
  • Z-A sort

Download the workbook

Sometimes it is easier to see the solution in action. So you can download the file by clicking the link below.

Disclaimer:
Whilst I try to create safe and reliable templates and add-ins, I can (and often do) make mistakes. Please backup copies of your files before opening any templates, add-ins or using any information you find on the site. If you do find any bugs or errors, please let me know using my contact page. By using any templates, add-ins, downloads or information from the site, you agree that I will not be held liable for any type of damages, and use is entirely at your own risk.

Re-usable code

  • The code which performs the main actions is contained within a standard module
  • The code contained within the UserForm module intercepts the events (i.e. button clicks) then calls a macro from the standard module
  • The variables used for the macros within the standard module are passed as arguments when calling the macro
  • The list is re-created each time it is sorted, no matter which sort method is selected. This ensures the list is updated for any changes whenever it is sorted. The piece of reusable code which clears and re-creates the list I am calling the “resetMacro”.

Listboxes on UserForms

  • a ListBox
  • four buttons for the different sort options
  • a close button

VBA code included in a standard module

The following is the code to include in the standard module, which performs the main actions.

Интересно почитать:  Как в excel удалить имя диапазона

Display the UserForm

The first code, will simply display the UserForm when a button is clicked.

Populate the ListBox

  • when the UserForm is initialized
  • when the btnStandard button is clicked
  • within all the other sort macros to recreate the list.

Reverse the items in the ListBox

The following code will first call the “resetMacro” to refresh the ListBox, then sort it in reverse order.

A-Z sort the List Box

The following code will first call the “resetMacro” to refresh the ListBox, then sort it in A-Z order using the Bubble sort method.

  • Using the Bubble Sort method, the last item does not need to be sorted. If every other item in the list is sorted correctly, then the last item must also be in the correct place (so that is the first -1).
  • The first item in a UserForm ListBox is item 0, rather than 1. Therefore, as the list starts at zero, we can -1 from the count to ensure we loop through all the items once.

Note: When using a Form Control list box, the first list position is 1, so the Form Control VBA code further down the post only has -1, rather than -2.

Z-A sort the ListBox

The following code will first call the “resetMacro” to refresh the ListBox, then sort it in Z-A order using the Bubble sort method.

VBA code included in the UserForm code module

The following sections of code are all included within the UserForm module. The code here is primarily to call the macros in the standard module, which we covered in the section above.

The name of the ListBox in the example is lstListBox.

Initialize the UserForm

When the UserForm first opens the UserForm_Initialize code executes. In our example, when the UserForm opens it calls the UserFormList macro, passing the lstListBox as an object variable into the macro.

Clicking the btnClose Button

The close button with Unload the UserForm.

Clicking the btnStandard button

The first button calls the macro to return the list to its original order. The code UserFormList is called, passing the lstListBox as an object variable.

Clicking the btnReverse button

The second button calls the macro to reverse the order of the list. In our example, the code UserFormReverseList is called. Two arguments are passed (1) the ListBox object (2) the name of the resetMacro.

Clicking the btnAZ button

The third button calls the macro to sort the list in A-Z order. The code UserFormSortAZ is called. Two arguments are passed (1) the ListBox object (2) the name of the “resetMacro”.

Clicking btnZA button

The fourth button calls the macro to sort the list in Z-A order. The code UserFormSortZA is called. Two arguments are passed (1) the ListBox object (2) the “resetMacro”.

That now completes the code used to sort a ListBox contained within a UserForm.

Do you know the fastest way to learn foreign languages? It is to read, write, speak, and think in that language as often as possible. Apart from speaking, programming languages are no different. The more you immerse yourself in that language, the faster you will pick it up.

100 Excel Macros Book

  • 100 example codes to practice reading and writing macros that will embed the language into your thinking.
  • An introduction to macros in Excel to ensure you can implement the VBA code in the book even if you have no prior knowledge.
  • Consistent code layout between examples to enable you to understand the structure and easily customize the code to meet your needs.
  • Downloadable workbook containing all the source code, so the examples can be added to your project to give you the benefit of VBA straight away.

Form Control Listboxes on the worksheet

The code in this section is for use with a Form Control ListBox.

  • Standard sort: FormControlList “lstListBox”‘
  • Reverse sort: FormControlReverse “lstListBox”, “FormControlList”‘
  • A-Z sort: FormControlSortAZ “lstListBox”, “FormControlList”‘
  • Z-A sort: FormControlSortZA “lstListBox”, “FormControlList”‘

VBA code included in a standard module

The following code is all included in the standard module.

Populate the ListBox

  • when the btnStandard button is clicked
  • within all the other sort macros to recreate the list (i.e. the “resetMacro”).

Reverse the items in the ListBox

The following code will first call the “resetMacro” to update the ListBox, then sort it in reverse order.

A-Z sort the List Box

The following code will first call the “resetMacro” to update the ListBox, then sort it in A-Z order using the Bubble sort method.

Z-A sort the List Box

The following code will first call the “resetMacro” to update the ListBox, then sort it in Z-A order using the Bubble sort method.

Conclusion

In this post, we have seen two methods to sort ListBoxes using VBA using reusable code segments. Obviously, to be useful this needs to be part of a bigger project. Feel free to take this and adapt it as you need to.
Get our FREE VBA eBook of the 30 most useful Excel VBA macros.
Automate Excel so that you can save time and stop doing the jobs a trained monkey could do.

By entering your email address you agree to receive emails from Excel Off The Grid. We’ll respect your privacy and you can unsubscribe at any time.

Don’t forget:

If you’ve found this post useful, or if you have a better approach, then please leave a comment below.

Do you need help adapting this to your needs?

I’m guessing the examples in this post didn’t exactly meet your situation. We all use Excel differently, so it’s impossible to write a post that will meet everybody’s needs. By taking the time to understand the techniques and principles in this post (and elsewhere on this site) you should be able to adapt it to your needs.

  1. Read other blogs, or watch YouTube videos on the same topic. You will benefit much more by discovering your own solutions.
  2. Ask the ‘Excel Ninja’ in your office. It’s amazing what things other people know.
  3. Ask a question in a forum like Mr Excel, or the Microsoft Answers Community. Remember, the people on these forums are generally giving their time for free. So take care to craft your question, make sure it’s clear and concise. List all the things you’ve tried, and provide screenshots, code segments and example workbooks.
  4. Use Excel Rescue, who are my consultancy partner. They help by providing solutions to smaller Excel problems.

What next?
Don’t go yet, there is plenty more to learn on Excel Off The Grid. Check out the latest posts:

Ссылка на основную публикацию
Adblock
detector