Массив сортировки VBA

В этом руководстве будет показано, как сортировать значения в массиве в VBA.

Сортировка одномерного массива с помощью цикла

Сортировка массива требует некоторой обработки данных с использованием циклов, переменных и временных массивов.

  • Сначала вам нужно заполнить массив своими значениями
  • Затем вам нужно дважды перебрать массив! Один раз, чтобы получить значение из текущего массива элементов, и пока все еще в этом цикле, чтобы получить значение следующего элемента в массиве.
  • Затем вам нужно сравнить элементы - и переместить 2-й в положение первого, если 2-й находится по алфавиту ПЕРЕД 1-м.

Пример ниже демонстрирует эту процедуру.

1234567891011121314151617181920212223 Sub SortAnArray ()Тусклый я до тех пор, пока'Установить массивDim strName () как вариантDim Temp как вариант'заполнить массивstrName () = Array («Боб Смит», «Джон Дэвис», «Фред Джонс», «Стив Дженкинс», «Боб Уильямс»)'пройти через границу арри и получить имяДля i = LBound (strName) To UBound (strName) - 1'пропустите снова и проверьте, находится ли следующее имя в алфавитном порядке до или после оригинальногоДля j = i + 1 To UBound (strName)Если UCase (strName (i))> UCase (strName (j)), то'если имя нужно переместить перед предыдущим именем, добавить во временный массивTemp = strName (j)поменять именаstrName (j) = strName (i)strName (i) = ТемператураКонец, еслиСледующий jДалее я'Выводить массив через окно сообщенияПрисоединение к MsgBox (strName (), vbCrLf)Конец подписки

Если вы запустите эту процедуру, вы получите следующее окно сообщения.

Вы также можете отсортировать массив в другом направлении - например: от Z до A, изменив эту строку кода

1 Если UCase (strName (i))> UCase (strName (j)) Тогда

к этой строке кода

1 Если UCase (strName (i)) <UCase (strName (j)) Тогда

После этого вы получите следующее окно сообщения.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave