Другие языки программирования и технологии

Vba эксель программирование

у меня есть матрица в области область ячеек C5:E10
как эту матрицу нужно отсортировать по убыванию элементов в каждой строке? Отсортированную матрицу нужно вывести рядом с исходной матрицей.
Открыт 3 дня назад
вот такая матрица у меня дана
Sub z6()
For i = 0 To 5
For j = 0 To 2
Cells(5 + i, 3 + j).Value = -20 + 40 * Rnd
If (Cells(5 + i, 3 + j).Value > -10) And (Cells(5 + i, 3 + j).Value < 0) Then
Cells(5 + i, 3 + j).Interior.Color = RGB(255, 0, 0)
Cells(5 + i, 3 + j).Value = -Cells(5 + i, 3 + j).Value
Else
Cells(5 + i, 3 + j).Interior.Pattern = xlPatternNone
End If
Next j
Next i
End Sub
Sub z6()
Dim i, j, z As Integer
Dim a(0 To 5, 0 To 2) As Single
Dim t As Single
For i = 0 To 5
For j = 0 To 2
Cells(5 + i, 3 + j).Value = -20 + 40 * Rnd
If (Cells(5 + i, 3 + j).Value > -10) And (Cells(5 + i, 3 + j).Value < 0) Then
Cells(5 + i, 3 + j).Interior.Color = RGB(255, 0, 0)
Cells(5 + i, 3 + j).Value = -Cells(5 + i, 3 + j).Value
Else
Cells(5 + i, 3 + j).Interior.Pattern = xlPatternNone
End If
Next j
Next i
For i = 0 To 5
For j = 0 To 2
a(i, j) = Cells(5 + i, 3 + j)
Next j
Next i
For i = 0 To 5
For j = 0 To 2
For z = j + 1 To 2
If a(i, j) < a(i, z) Then
t = a(i, j)
a(i, j) = a(i, z)
a(i, z) = t
End If
Next z
Next j
Next i
For i = 0 To 5
For j = 0 To 2
Cells(5 + i, 7 + j) = a(i, j)
Next j
Next i
End Sub
David Lempert
David Lempert
53 185
Лучший ответ