Как перебрать ячейки в функции MIN / MAX в VB Excel 2003? - PullRequest
0 голосов
/ 22 декабря 2011
    Set min=min1=1000, max=max1=position=0   
    For i=2 to 10 do 
    min=**MIN(A(i,j):A(i+5,j));**  
    if position=0 then min1=min, position=1 else  
    For j=2 to 10 do  {max=**MAX(A(i,j):A(i+5,j));**  
    if max<min then next j else position=0, next i 

Я новичок в этом и пытаюсь сделать следующий код выше в VB Excel (проблема выделена жирным шрифтом): Спасибо

1 Ответ

7 голосов
/ 22 декабря 2011

Невозможно исправить весь ваш код, потому что не ясно, что вы пытаетесь сделать.Но следующее может дать вам начало.

Всегда лучше объявить ваши переменные и указать их тип:

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 для массива, но я не знаю ни одного способавыбор части массива.

Надеюсь, это даст вам начало.

...