Всем привет.
В строке рандомные значения. Нужно отсортировать. Изучаю 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 |