Страницы: 1
RSS
Поиск минимального или максимального из несмежных ячеек
 
Код
Acti = Union(Cells(n, 6), Cells(n, 10), Cells(n, 14), Cells(n, 18), Cells(n, 22)).Select
 x = Aplication.Function.Min(Acti)

Есть не смежные ячейки и надо найти у них минимальное как понял MIn работает только с массивом. Нужно писать цикл? Или есть какой другой вариант. Подскажите помогите кто чем может?
 
Цитата
Vojjd написал: Подскажите помогите кто чем может?
Чем мог (сообщение #5)
и ноль реакции...
Согласие есть продукт при полном непротивлении сторон
 
Vojjd, с таким подходом Вам не будут помогать.
 
Цитата
Sanja написал:
и ноль реакции...
Исправил, погрузился в работу и забыл отписаться.
 
Код
Set Acti = Union(Cells(n, 6), Cells(n, 10), Cells(n, 14), Cells(n, 18), Cells(n, 22))
x = Aplication.Min(Acti)
y = Aplication.Max(Acti)
Согласие есть продукт при полном непротивлении сторон
 
Min Max не работают с  Union
 
Раз Вы в этом так уверены, то зачем вопросы задаете?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Vojjd написал:
Min Max не работают с  Union
Уверены?
 
Проверял не работает. Офис 2013.
Изменено: Vojjd - 14.06.2019 09:25:58
 
Я тоже проверял - работает.
 
Цитата
Vojjd написал: Проверял не работает
Что Вы проверяли?
Код в сообщении #5 рабочий, проверял
Файл в сообщении #7 сделан для Вас, что Вы еще раз проверили.
То, как Вы работаете с Union, вызывает вопросы. Это точно не работает, и проверять не нужно
Согласие есть продукт при полном непротивлении сторон
 
Код
Dim a1, a2, a3, a4, a5 As Range
Dim Min, a As Variant

    Set a2 = Cells(n, 6)
    Set a3 = Cells(n, 10)
    Set a4 = Cells(n, 14)
    Set a5 = Cells(n, 18)
    Set a6 = Cells(n, 18)
    
    n = 2
    Min = a2
    For i = 2 To 6
        If a(i) < a3 Then a3 = Min
        End If
    Next i
    
Cells(1, 1) = Min

С циклом тоже не получается, помогите исправить.  
 
Тихо сам с собою я веду беседу...
Вы вообще читаете ответы которые Вам дают?  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Файл в сообщении #7 сделан для Вас, что Вы еще раз проверили.
При запуске выходит окно " Can't exccute code in brace mode"
Изменено: Vojjd - 14.06.2019 09:26:13
 
Vojjd, не нужно вставлять скопированную картинку: показывайте её прикреплённым файлом. Исправьте своё сообщение.
А на досуге почитайте, как правильно объявлять переменные и присваивать им тип.
 
Цитата
Юрий М написал: как правильно объявлять переменные и присваивать им тип
Судя по коду с циклом, и о массивах Вы имеете весьма далекое представление. Подучите мат.часть
Изменено: Sanja - 12.06.2019 19:38:35
Согласие есть продукт при полном непротивлении сторон
 
Извиняюсь за свою тупость все работает, большое спасибо
Изменено: Vojjd - 12.06.2019 19:44:14
 
Таким образом мы нашли значение в виде цифры, а можно его определить как ячейку, чтобы отталкиваться дальше и захватить значения соседних ячеек?
 
Цитата
Vojjd написал:
можно его определить как ячейку
можно, но что с дублями делать?
Код
Sub Vojjd()
Set r = Union(Cells(1, 1), Cells(2, 2), Cells(3, 3), Cells(4, 4), Cells(5, 5))
For Each cell In r
If cell = Application.Max(r) Then maxadress = maxadress & cell.Address
If cell = Application.Min(r) Then minadress = minadress & cell.Address
Next
MsgBox "Max - " & maxadress & vbCrLf & _
        "Min - " & minadress
End Sub
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
можно, но что с дублями делать?
одинаковые значения маловероятны в моем случае.
При запуске вашего кода - ошибка Out of memory
 
Цитата
Vojjd написал:
одинаковые значения маловероятны
а по вашему примеру не скажешь
Цитата
Vojjd написал:
ошибка Out of memory
показывайте в файле - у меня всё работает
Изменено: buchlotnik - 14.06.2019 08:25:37
Соблюдение правил форума не освобождает от модераторского произвола
 
Вариант
Код
Sub Vojjd()
Dim R As Range, iMax, iMin
Dim clMax As Range, clMin As Range, afterCell As Range
Set R = Union(Cells(1, 1), Cells(2, 2), Cells(3, 3), Cells(4, 4), Cells(5, 5))
iMax = Application.Max(R)
iMin = Application.Min(R)
Set afterCell = R.SpecialCells(xlCellTypeLastCell)
Set clMax = R.Find(What:=iMax, After:=afterCell, SearchDirection:=xlPrevious)
Set clMin = R.Find(What:=iMin, After:=afterCell, SearchDirection:=xlPrevious)
MsgBox "Max - " & Application.Max(R) & ", в ячейке - " & clMax.Address(0, 0) & vbCrLf & _
        "Min - " & Application.Min(R) & ", в ячейке - " & clMin.Address(0, 0)
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Цитата
buchlotnik написал: а по вашему примеру не скажешь
buchlotnik, это мой пример :) , ТС так и неудосужился  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
buchlotnik написал:
а по вашему примеру не скажешь
да дубли есть, посмотри что получиться.
Страницы: 1
Наверх