Невозможно исправить весь ваш код, потому что не ясно, что вы пытаетесь сделать.Но следующее может дать вам начало.
Всегда лучше объявить ваши переменные и указать их тип:
Dim i As Integer
Dim j As Integer
Dim max As Integer
Dim max1 As Integer
Dim min As Integer
Dim min1 As Integer
Dim Position As Integer
Я предпочитаю объявлять их в алфавитном порядке, но это не тактребование.
Вам необходимо:
min = 1000
min1 = 1000
max = 0
max1 = 0
Position = 0
В Set min=min1=1000, max=max1=position=0
имеются следующие ошибки:
- Набор используется только для объектов.
- Вы не можете разделять операторы запятыми.
В некоторых языках min=min1=1000
означает min1=1000, min=min1
, но в VBA это означает:
If min1=1000 Then
min=True
Else
min=False
End if
В конце оператора For нет Do
.Итак:
For i = 2 To 10
MIN и MAX являются функциями листа.Чтобы использовать затем в VBA, вы должны сказать, что они являются функциями листа.В конце операторов VBA нет точек с запятой.Вы использовали j в функции MIN, но еще не установили ее значение.
Я не могу указать расположение значений, которые являются параметрами для MIN и MAX.
Если местоположение находится вна текущем рабочем листе вам нужно что-то вроде:
With ActiveSheet
min = Application.WorksheetFunction.min(.Range("B16:F16"))
End With
или, возможно, как:
With ActiveSheet
min = Application.WorksheetFunction.min(.Range(.Cells(i,j),.Cells(i+5,j)))
End With
Возможно использовать функции MIN и MAX для массива, но я не знаю ни одного способавыбор части массива.
Надеюсь, это даст вам начало.