powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / выбор самого большого числа в строке
17 сообщений из 17, страница 1 из 1
выбор самого большого числа в строке
    #35047022
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая проблема:

Есть строка. В ней какое-то количество столбцов. Необходимо, чтобы в этой строке было бы выбрано самое большое значение и выделено каким-либо образом (другим цветом или шрифтом - это уже не столь важно). Подскажите КАК?

Заранее спасибо!!!!
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35047161
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат>Условное форматирование>MAX(A1)
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35048085
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то это не то....мне нужно через basic
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35048119
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все спасибо...уже не надо...сам написал
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35048151
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покаж как сделал :-)
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35048233
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут, наверное, можно сделать 2-мя путями
1) перебором каждой ячейки в ряду
2) использовать функцию рабочего листа МАКС() и поиск этого максимального значения

Вот вариант второго пути

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub Макрос1()
Dim iMaxRange As Range
Dim iMax As Single
Dim iRow As Long
    iRow =  5  'пятый ряд
    iMax = WorksheetFunction.Max(Rows(iRow)) 'максимальное значение в пятом ряду
    If iMax =  0  Then 'если в строке нет чисел
        MsgBox "В строке " & iRow & " нет чисел!", vbExclamation, "Ошибка"
        Exit Sub
    End If
    Set iMaxRange = Rows(iRow).Find(What:=iMax, LookIn:=xlValues, LookAt:=xlWhole) 'ищем ячейку с максим. значением
    iMaxRange.Interior.ColorIndex =  6  'выделяем её желтым цветом
    MsgBox "Максимальное число найдено в ячейке " & iMaxRange.Address( 0 ,  0 ) & " и выделено жёлтым цветом!", vbInformation, "Max"
End Sub
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35048242
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, в вас, Павел, я не сомневался :-)
Мне было интересно как сделал эту задачу Alexei Gennadevich :-)
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054298
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как раз сделал первым способом: когда перебираются все ячейки. Ниже мой код, но решение, предложенное Павлом, выглядит более солидно. Просто это еще не мой уровень.

Sub poisk()
j = 1
Do
Range("A" + CStr(j)).Activate
2
x = 1
1
If ActiveCell.Offset(0, x).Value = "" Then
ActiveCell.Font.Bold = True
GoTo 3
End If
If ActiveCell.Value < ActiveCell.Offset(0, x).Value Then
ActiveCell.Offset(0, x).Activate
GoTo 2
Else
x = x + 1
GoTo 1
End If
3
j = j + 1
Loop While Range("A" + CStr(j)).Value > ""
End Sub
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054482
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще есть третий способ и, как мне кажется, оптимальный:

Код: plaintext
1.
2.
Sub Test()
    Rows( 5 ).FormatConditions.Add( 2 , , "=RC=MAX(R)").Interior.Color =  255 
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054518
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, круто)
но в русском офисе формула MAX(R) не работает, надо МАКС(R)
А при повторном запуске макроса, он добавляет новое (2 и 3) идентичное условие, а при 4-ом запуске происходит ошибка 1004 (в офисе 2003, т.к. там можно только 3 условия)
Поэтому, с позволения KL , дополню
Код: plaintext
1.
2.
3.
Sub Test()
    Rows( 5 ).FormatConditions.Delete
    Rows( 5 ).FormatConditions.Add( 2 , , "=RC=МАКС(R)").Interior.Color =  255 
End Sub
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054698
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За что благодарен этому форуму, так это за то что, спросив совета умных людей, нелепые скрипты на целую страницу, написанные собственными силами, можно заменить на коды из двух строчек...всем огромное спасибо.

P.S.:Ребят не могли бы еще объяснить, что несет в себе условие Add(2, , "=RC=МАКС(R)"). Как я понимаю "=RC=МАКС(R)" - это условие максимального числа. А что такое "2, ,"?
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054928
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читайте справку
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35054979
sqrk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это тип условия. Принимает два значения:
xlCellValue (1) The conditional format is based on a cell value.
xlExpression (2) The conditional format is based on an expression.
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35055162
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цитата из Справки Excel по FormatCondition.Add

expression.Add(Type, Operator, Formula1, Formula2)
expression - Required. An expression that returns a FormatConditions object.

Type Required XlFormatConditionType . Specifies whether the conditional format is based on a cell value or an expression.
XlFormatConditionType can be one of these XlFormatConditionType constants.
- xlCellValue The conditional format is based on a cell value.
- xlExpression The conditional format is based on an expression.

Operator Optional Variant. The conditional format operator. Can be one of the following XlFormatConditionOperator constants: xlBetween, xlEqual, xlGreater, xlGreaterEqual, xlLess, xlLessEqual, xlNotBetween , or xlNotEqual . If Type is xlExpression, the Operator argument is ignored.

Formula1 Optional Variant. The value or expression associated with the conditional format. Can be a constant value, a string value, a cell reference, or a formula.

Formula2 Optional Variant. The value or expression associated with the second part of the conditional format when Operator is xlBetween or xlNotBetween (otherwise, this argument is ignored). Can be a constant value, a string value, a cell reference, or a formula.
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35057672
Alexei Gennadevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, если я хочу, чтобы окрашивались те ячейки, которые больше скажем 0, но меньше 10. Я попробовал так:

Sub Test()
Rows(5).FormatConditions.Delete
Rows(5).FormatConditions.Add(2, xlBetween, "=RC>0", "=RC<10").Interior.Color = 255
End Sub

Но, к сожалению, у меня выделялись все ячейки, которые больше не только 0, но и больше 10 (то есть выполнялось только первое условие). Как быть в данном случае?

Заранее спасибо!
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35057682
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это, наверное, из-за того, что "между" работает только когда тип "Значение" (1), а не "Формула" (2) .
Цитатат из Справки: "If Type is xlExpression , the Operator argument is ignored ."

Попробуйте так
Код: plaintext
1.
2.
3.
Sub Test()
    Rows( 5 ).FormatConditions.Delete
    Rows( 5 ).FormatConditions.Add( 1 , xlBetween, "0", "9").Interior.Color =  255 
End Sub
...
Рейтинг: 0 / 0
выбор самого большого числа в строке
    #35057752
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или так:

Sub Test1()
Rows(5).FormatConditions.Delete
Rows(5).FormatConditions.Add(2, , "=(RC>0)*(RC<10)").Interior.Color = 255
End Sub

Sub Test2()
Rows(5).FormatConditions.Delete
Rows(5).FormatConditions.Add(2, , "=И(RC>0;RC<10)").Interior.Color = 255
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / выбор самого большого числа в строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]