✨ Функции для сортировки массива
🛠 Функция для сортировки массива по возрастанию с числовым сравнением числовых элементов массива
Внешний цикл сравнивает по очереди каждый элемент массива с наименьшем элементом, найденным вложенным циклом среди оставшихся элементов (с бóльшими индексами), и, если наименьший элемент myArray(im) не является текущим элементом myArray(i1), они меняются местами.
🛠 Функция для сортировки массива с выбором вида сортировки
Дополнительный параметр mySort позволяет выбрать сортировку по возрастанию или убыванию и с числовым или текстовым сравнением числовых элементов массива. Значения, которые может принимать параметр mySort в таблице ниже.
#Function #Функция #SortArray #СортировкаМассива
🛠 Функция для сортировки массива по возрастанию с числовым сравнением числовых элементов массива
Function SortArray(myArray As Variant) As Variant
Dim l As Long, u As Long, i1 As Long, i2 As Long, im As Long, tmp As Variant
'Определение наименьшего индекса массива
l = LBound(myArray)
'Определение наибольшего индекса массива
u = UBound(myArray)
For i1 = l To u
im = i1
For i2 = i1 To u
'Поиск наименьшего элемента массива, начиная с элемента myArray(i1)
If myArray(i2) < myArray(im) Then im = i2
Next
'Если наименьший элемент не является текущим (im <> i1),
'тогда наименьший элемент и текущий меняются местами
If im <> i1 Then
tmp = myArray(i1)
myArray(i1) = myArray(im)
myArray(im) = tmp
End If
Next
SortArray = myArray
End Function
Внешний цикл сравнивает по очереди каждый элемент массива с наименьшем элементом, найденным вложенным циклом среди оставшихся элементов (с бóльшими индексами), и, если наименьший элемент myArray(im) не является текущим элементом myArray(i1), они меняются местами.
🛠 Функция для сортировки массива с выбором вида сортировки
Function SortArrayNew(myArray As Variant, mySort As Long) As Variant
Dim l As Long, u As Long, i1 As Long, i2 As Long, im As Long, tmp As Variant
l = LBound(myArray)
u = UBound(myArray)
For i1 = l To u
im = i1
For i2 = i1 To u
Select Case mySort
Case Is = 0
If myArray(i2) < myArray(im) Then im = i2
Case Is = 1
If CStr(myArray(i2)) < CStr(myArray(im)) Then im = i2
Case Is = 2
If myArray(i2) > myArray(im) Then im = i2
Case Is = 3
If CStr(myArray(i2)) > CStr(myArray(im)) Then im = i2
End Select
Next
If im <> i1 Then
tmp = myArray(i1)
myArray(i1) = myArray(im)
myArray(im) = tmp
End If
Next
SortArrayNew = myArray
End Function
Дополнительный параметр mySort позволяет выбрать сортировку по возрастанию или убыванию и с числовым или текстовым сравнением числовых элементов массива. Значения, которые может принимать параметр mySort в таблице ниже.
#Function #Функция #SortArray #СортировкаМассива