Sub MatrixNN()
Const R1 = "A1" ' Адрес ячейки с первым элементом массива чисел
Const upperbound = 9000 'Пределы изменения элементов массива
Const lowerbound = -9000
N = InputBox("Введите целое N>0")
ierr = False
If IsNumeric(N) Then
CN = CDbl(N)
ierr = CDbl(CN) > 0 And Int(CN) = CN
End If
If Not ierr Then
MsgBox "Введено неверное число" + vbCrLf + N
Exit Sub
End If
ReDim Mass(1 To N, 1 To N)
Randomize
For i = 1 To N
For j = 1 To N
Mass(i, j) = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
Next
Next
With Rows("1:100000")
.ClearContents
.Interior.Pattern = xlNone
End With
R1N = Range(R1).Offset(N - 1, N - 1).Address
Range(R1 + ":" + R1N) = Mass
R2 = Range(R1).Offset(N + 3, 0).Address
R2N = Range(R2).Offset(N - 1, N - 1).Address
For k = 1 To N
sCol = 0
For i = 1 To N
sCol = sCol + Mass(i, k)
Next
Range(R1).Offset(N + 1, k - 1) = sCol
If sCol Mod 2 <> 0 Then
Range(R1).Offset(N + 1, k - 1).Interior.Color = 65535
RR = Range(R2).Offset(0, k - 1).Address
RRN = Range(RR).Offset(N - 1, 0).Address
Range(RR + ":" + RRN).Interior.Color = 65535
For i = 1 To N
m1 = Mass(i, k)
For j = i To N
If Mass(j, k) > Mass(i, k) Then
Mass(i, k) = Mass(j, k)
Mass(j, k) = m1
m1 = Mass(i, k)
End If
Next
Next
End If
Next
Range(R2 + ":" + R2N) = Mass
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.