VBA Сортиращ масив

Този урок ще покаже как да сортирате стойности в масив във VBA

Сортиране на едноизмерен масив с помощта на цикъл

Сортирането на масив изисква малко манипулиране на данни с помощта на цикли, променливи и временни масиви.

  • Първо трябва да попълните масива с вашите стойности
  • След това трябва да преминете през масив два пъти! Веднъж, за да получите стойност от текущия масив от елементи, а докато все още е в този цикъл, за да получите стойността на следващия елемент в масива.
  • След това трябва да сравните елементите - и да преместите втория до позицията на първия, ако вторият е по азбучен ред ПРЕДИ първия.

Примерът по -долу демонстрира тази процедура.

1234567891011121314151617181920212223 Sub SortAnArray ()Dim i As Long'Задайте масиваDim strName () Като вариантDim Temp като вариант'попълнете масиваstrName () = Array ("Боб Смит", "Джон Дейвис", "Фред Джоунс", "Стив Дженкинс", "Боб Уилямс")'прекарайте границата на arry и вземете първото имеЗа i = LBound (strName) Към UBound (strName) - 1'повторете отново и проверете дали следващото име е по азбучен ред преди или след оригиналаЗа j = i + 1 към UBound (strName)Ако UCase (strName (i))> UCase (strName (j)) Тогава'ако името трябва да бъде преместено преди предишното име, добавете към времеви масивTemp = strName (j)'swop именатаstrName (j) = strName (i)strName (i) = ТемпКрай АкоСледващ jСледва i'Изведете масива през поле за съобщениеMsgBox Join (strName (), vbCrLf)End Sub

Ако изпълните тази процедура, ще получите следното поле за съобщение.

Можете също да сортирате масива в другата посока - например: Z до A, като промените този ред код

1 Ако UCase (strName (i))> UCase (strName (j)) Тогава

към този ред код

1 Ако UCase (strName (i)) <UCase (strName (j)) Тогава

След това ще получите следното поле за съобщение.

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

wave wave wave wave wave