Есть таблица. Строю два доп. столбца "Max" (раcчитан по столбу "High") и "Min" (раcчитан по стлбу "Low")
В столбцы "High" и "Min" добавляю условное форматирование - подсвечиваю максимум и минимум.
[vba]
Код
Sub Макрос3() 'ПЕРЕД ЗАПУСКОМ (для чистоты эксперимента) - УДАЛИТЬ СТОЛБЦЫ "Max" И "Min" Dim rngStart As Range, rngTable As Range, tmpRange As Range Dim NumRowTab As Long, NumColTab As Long Set rngStart = ThisWorkbook.Worksheets("Лист1").Range("B2")
'Определим размер загруженной таблицы 'количество строк, столбцов Set rngTable = rngStart.CurrentRegion NumRowTab = rngTable.Rows.count: NumColTab = rngTable.Columns.count
'ДОПОЛНИТЕЛЬНЫЕ ДВА СТОЛБЦА: Max и Min Dim j As Integer For j = 1 To 2 Select Case j Case 1 With rngStart .Offset(0, NumColTab).Value = "Max" .Offset(1, NumColTab).FormulaR1C1 = "=MAX(RC[-5]:R[" & NumRowTab - 2 & "]C[-5])" End With Case 2 With rngStart .Offset(0, NumColTab).Value = "Min" .Offset(1, NumColTab).FormulaR1C1 = "=MIN(RC[-5]:R[" & NumRowTab - 2 & "]C[-5])" End With End Select
With .Offset(, -5) 'дополнительно подсвечиваем Максимум и Минимум .FormatConditions.Delete .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=RC[+5]"
If j = 1 Then 'для Максимума .FormatConditions(1).Interior.Color = RGB(255, 204, 204) 'MAX 'МАКС Else 'для Минимума .FormatConditions(1).Interior.Color = RGB(204, 255, 204) 'MIN 'МИН End If End With End With
Set rngTable = rngStart.CurrentRegion 'пересчитываем таблицу NumRowTab = rngTable.Rows.count: NumColTab = rngTable.Columns.count Next j End Sub
[/vba]
Но удалось сделать только по значению максимума и минимума в доп. столбцах. Нужно альтернативное решение - условное форматирование по Формуле максимума и минимума в этих же столбцах ("High" и "Min"). Почему то кажется что так будет попроще.
Есть таблица. Строю два доп. столбца "Max" (раcчитан по столбу "High") и "Min" (раcчитан по стлбу "Low")
В столбцы "High" и "Min" добавляю условное форматирование - подсвечиваю максимум и минимум.
[vba]
Код
Sub Макрос3() 'ПЕРЕД ЗАПУСКОМ (для чистоты эксперимента) - УДАЛИТЬ СТОЛБЦЫ "Max" И "Min" Dim rngStart As Range, rngTable As Range, tmpRange As Range Dim NumRowTab As Long, NumColTab As Long Set rngStart = ThisWorkbook.Worksheets("Лист1").Range("B2")
'Определим размер загруженной таблицы 'количество строк, столбцов Set rngTable = rngStart.CurrentRegion NumRowTab = rngTable.Rows.count: NumColTab = rngTable.Columns.count
'ДОПОЛНИТЕЛЬНЫЕ ДВА СТОЛБЦА: Max и Min Dim j As Integer For j = 1 To 2 Select Case j Case 1 With rngStart .Offset(0, NumColTab).Value = "Max" .Offset(1, NumColTab).FormulaR1C1 = "=MAX(RC[-5]:R[" & NumRowTab - 2 & "]C[-5])" End With Case 2 With rngStart .Offset(0, NumColTab).Value = "Min" .Offset(1, NumColTab).FormulaR1C1 = "=MIN(RC[-5]:R[" & NumRowTab - 2 & "]C[-5])" End With End Select
With .Offset(, -5) 'дополнительно подсвечиваем Максимум и Минимум .FormatConditions.Delete .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=RC[+5]"
If j = 1 Then 'для Максимума .FormatConditions(1).Interior.Color = RGB(255, 204, 204) 'MAX 'МАКС Else 'для Минимума .FormatConditions(1).Interior.Color = RGB(204, 255, 204) 'MIN 'МИН End If End With End With
Set rngTable = rngStart.CurrentRegion 'пересчитываем таблицу NumRowTab = rngTable.Rows.count: NumColTab = rngTable.Columns.count Next j End Sub
[/vba]
Но удалось сделать только по значению максимума и минимума в доп. столбцах. Нужно альтернативное решение - условное форматирование по Формуле максимума и минимума в этих же столбцах ("High" и "Min"). Почему то кажется что так будет попроще.Vostok
Здесь форматирование по ячейке, а мне нужно - по формуле.
Чем вас не устраивает стандартное УФ в вашей версии XL, например, первые 10 или последние 10 из n?! Просто берете 1 большее или 1 меньшее - и усё... TimSha