Всем привет.
В строке рандомные значения. Нужно отсортировать. Изучаю Bubble Sort.
Все работает.
Но тут мне захотелось, чтобы не эта строка сортировалась, а сортировались значения и выводились строкой ниже.
Тот же массив. Проверяю заполнен значениями. Но почему то перебор нулей и строка заполняется нулями ((
Подскажите где я туплю пож.
В строке рандомные значения. Нужно отсортировать. Изучаю Bubble Sort.
Код |
---|
Sub Урок24_DZ() Dim Mass() As Long Dim LB As Long Dim UB As Long LB = 20 UB = ThisWorkbook.Worksheets("Лист1").Cells(14, Columns.Count).End(xlToLeft).Column ReDim Mass(LB To UB) As Long Call Module5.BBS_DZ(Mass) End Sub '---------------------------------------------------------- Sub BBS_DZ(list() As Long) Dim first As Long Dim lust As Long Dim i As Long Dim j As Long Dim temp As String first = LBound(list) lust = UBound(list) For i = first To lust - 1 For j = i + 1 To lust If Cells(14, i) > Cells(14, j) Then temp = Cells(14, j) Cells(14, j) = Cells(14, i) Cells(14, i) = temp End If Next j Next i End Sub |
Но тут мне захотелось, чтобы не эта строка сортировалась, а сортировались значения и выводились строкой ниже.
Тот же массив. Проверяю заполнен значениями. Но почему то перебор нулей и строка заполняется нулями ((
Код |
---|
Sub Урок24_D_Z() Dim Mass() As Long Dim LB As Long Dim UB As Long LB = 20 UB = ThisWorkbook.Worksheets("Лист1").Cells(14, Columns.Count).End(xlToLeft).Column ReDim Mass(LB To UB) As Long 'Dim i As Long 'For i = LBound(Mass) To UBound(Mass) ' Debug.Print ThisWorkbook.Worksheets("Лист1").Cells(14, i) 'Next i Call Module5.BBS_D_Z(Mass) '---------------------------------------------------------------------- End Sub Sub BBS_D_Z(list() As Long) Dim i As Long Dim j As Long Dim temp As String 'For i = LBound(list) To UBound(list) ' Debug.Print ThisWorkbook.Worksheets("Лист1").Cells(14, i) 'Next i For i = LBound(list) To UBound(list) - 1 For j = i + 1 To UBound(list) If list(i) > list(j) Then temp = list(j) list(j) = list(i) list(i) = temp End If Next j Next i For i = LBound(list) To UBound(list) ThisWorkbook.Worksheets("Лист1").Cells(15, i).Value = list(i) Next i End Sub |