Цей підручник покаже, як сортувати значення в масиві у VBA
Сортування одновимірного масиву за допомогою циклу
Сортування масиву вимагає трохи обробки даних за допомогою циклів, змінних та тимчасових масивів.
- Спочатку потрібно заповнити масив своїми значеннями
- Тоді вам потрібно двічі прокрутити масив! Одного разу, щоб отримати значення з поточного масиву елементів, і поки він знаходиться в цьому циклі, щоб отримати значення наступного елемента в масиві.
- Тоді вам потрібно порівняти елементи - і перемістити другий до позиції першого, якщо другий за алфавітом ДО першого.
Наведений нижче приклад демонструє цю процедуру.
1234567891011121314151617181920212223 | Sub SortAnArray ()Dim i As Long'Встановіть масивDim strName () як варіантТемна температура як варіант'заповнити масивstrName () = Масив ("Боб Сміт", "Джон Девіс", "Фред Джонс", "Стів Дженкінс", "Боб Вільямс")'пропустіть кордон межі і отримайте ім'яДля i = LBound (strName) До UBound (strName) - 1'повторіть цикл і перевірте, чи є наступне ім'я в алфавітному порядку перед або після оригіналуДля j = i + 1 до UBound (strName)Якщо UCase (strName (i))> UCase (strName (j)) Тоді'якщо ім'я потрібно перемістити перед попереднім ім'ям, додайте до тимчасового масивуTemp = strName (j)'змінити імена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)) Тоді |
Після цього ви отримаєте таке вікно повідомлення.