Определить столбец и строку двухмерного массива - VBA

Формулировка задачи:

Определить столбец и строку двухмерного массива A 4×5, на пересечении которых расположен максимальный элемент. Создать массив B, в котором значение найденной строки и столбца эквивалентны значениям массива A, а остальные элементы нулевые.

Код к задаче: «Определить столбец и строку двухмерного массива - VBA»

textual
Sub ТаНяяяяя()
Dim i%, j%, N%, M%, Max%
Dim K%, R%, x%, y%, Z%
Cells.Clear
N = Int(InputBox("Введите количество строк", "Ввод данных", 4))
M = Int(InputBox("Введите количество столцов", "Ввод данных", 5))
ReDim A(1 To N, 1 To M)
For i = 1 To N
  For j = 1 To M
   A(i, j) = Int((50 * Rnd) + (-25))
   Cells(i, j) = A(i, j)
  Next j
Next i
 
Max = Cells(1, 1)
For i = 1 To N
  For j = 1 To M
   If Cells(i, j) >= Max Then
      Max = Cells(i, j): jMax = j
      End If
    Next
    Cells(i, jMax).Font.Color = vbRed
Next i
 
Cells(N + 2, 5) = Max
Cells(N + 2, 1) = " Максимальный элемент: Max = "
 
K = 0: R = 0
For i = 1 To N
  For j = 1 To M
   If Cells(i, j) = Max Then
      K = i
      R = j
      End If
  Next j
Next i
Cells(N + 3, 5) = K
Cells(N + 3, 1) = " Строка максимального эл-та: i = "
Cells(N + 4, 5) = R
Cells(N + 4, 1) = " Столбец максимального эл-та: j = "
 
ReDim B(1 To N, 1 To M) As Integer
For i = 1 To N
  For j = 1 To M
   Z = 0
   B(i, j) = Z
   B(i, R) = A(i, R)
   B(K, j) = A(K, j)
  Next j
Next i
Worksheets("Лист1").Cells(N + 6, 1).Resize(N, M).Value = B
 
End Sub

7   голосов, оценка 3.714 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы