Здравствуйте
Сделал подсветку строки и столбца через условное форматирование
Пожалуйста, помогите изменить формулу:
- если активная ячейка вне рабочего диапазона - убрать цвет заливки подсветки
- при выделении более одной ячейки - убрать цвет заливки подсветки
- выделенная строка (клик по ее номеру) - подсвечена полностью в пределах рабочего диапазона
- подсвечивать не весь столбец, а только его четвертую ячейку сверху
.FormatConditions.Delete в условии не подходит, так как не будет возможности отмены действий на листе (Ctrl+Z)
Сделал подсветку строки и столбца через условное форматирование
| Код |
|---|
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WorkRange As Range
'адрес рабочего диапазона подсветки
Set WorkRange = Range("A4:M35")
'если активная ячейка в рабочем диапазоне и нет УФ: добавить УФ
If WorkRange.Address = Union(WorkRange, ActiveCell).Address And ActiveCell.FormatConditions.Count = 0 Then
i = ActiveCell.Address(0, 0)
MyFormula = "=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
WorkRange.FormatConditions.Add Type:=xlExpression, Formula1:=MyFormula
WorkRange.FormatConditions(WorkRange.FormatConditions.Count).SetFirstPriority
With WorkRange.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
WorkRange.FormatConditions(1).StopIfTrue = False
End If
ActiveCell.Calculate
End Sub
|
| Код |
|---|
"=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
|
- при выделении более одной ячейки - убрать цвет заливки подсветки
- выделенная строка (клик по ее номеру) - подсвечена полностью в пределах рабочего диапазона
- подсвечивать не весь столбец, а только его четвертую ячейку сверху
.FormatConditions.Delete в условии не подходит, так как не будет возможности отмены действий на листе (Ctrl+Z)