Помогите доделать программку макрос в VBA
Формулировка задачи:
Заставляют писать макрос в VBA, в котором работал давным давно.
И так, от меня хотят:
Поменять местами значения массива, имеющие минимальное и максимальное значение. Числа массива расположены в первых 10 строках и первых 3 столбцах.
Вот что наработал, но не получается то, что надо, подкорректируйте у кого с этим проще.
это 1-й вариант, и вот еще
не понимаю, в чем ошибся.
И так, от меня хотят:
Поменять местами значения массива, имеющие минимальное и максимальное значение. Числа массива расположены в первых 10 строках и первых 3 столбцах.
Вот что наработал, но не получается то, что надо, подкорректируйте у кого с этим проще.
это 1-й вариант, и вот еще
не понимаю, в чем ошибся.
Решение задачи: «Помогите доделать программку макрос в VBA»
textual
Листинг программы
DefLng A-Z
Public Sub huh2()
Dim n, m, a, b
Dim tmp, d()
Dim i, j
Dim jmax, jmin, imax, imin
n = InputBox("Введите количество строк массива", , 5)
m = InputBox("Введите количество столбцов массива", , 3)
a = InputBox("Введите нижнюю границу значений элементов массива", , 0)
b = InputBox("Введите верхнюю границу значений элементов массива", , 50)
ReDim d(n, m)
Randomize
For i = 1 To n
For j = 1 To m
d(i, j) = Int(a + Rnd * (b - a))
Cells(i, j) = d(i, j)
Cells(i, j + 2 + m) = d(i, j)
Next j
Next i
jmax = 1
jmin = 1
imax = 1
imin = 1
For i = 1 To n
For j = 1 To m
If d(i, j) > d(imax, jmax) Then
jmax = j
imax = i
ElseIf d(i, j) < d(imin, jmin) Then
jmin = j
imin = i
End If
Next j
Next i
tmp = d(imax, jmax)
d(imax, jmax) = d(imin, jmin)
d(imin, jmin) = tmp
Cells(imax, jmax) = d(imax, jmax)
Cells(imin, jmin) = d(imin, jmin)
End Sub