Я пытаюсь добавить условное форматирование в диапазон, который проверяет ячейку X1, и если она не соответствует ей, применяются условия.VBA, применяя условное форматирование к ячейке
Если я применил его к одной соте, он отлично работает. однако мне нужно, чтобы он применялся к каждой ячейке в диапазоне.
код:
Function FindComment(rng As Range, strSearch As String) As Boolean
On Error GoTo err_h:
strSearch = LCase(strSearch)
If Len(strSearch) = 0 Then
FindComment = False
Exit Function
End If
If InStr(1, rng.Comment.Text, strSearch, vbTextCompare) > 0 Or InStr(1, rng.Text, strSearch, vbTextCompare) > 0 Then
FindComment = False
Exit Function
End If
FindComment = True
Exit Function
err_h:
FindComment = True
End Function
И применить условное форматирование:
Public Sub AddConditionalFormat(rng As Range)
rng.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=FINDCOMMENT(" & rng.Address(, , xlA1) & ",$X$1)"
rng.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.ColorIndex = 2
End With
With rng.FormatConditions(1).Interior
.Pattern = xlGray75
.PatternThemeColor = xlThemeColorDark2
.PatternTintAndShade = 0
.ColorIndex = 2
.TintAndShade = 0
.PatternTintAndShade = 0
End With
rng.FormatConditions(1).StopIfTrue = False
End Sub
диапазон диапазон ("B6: GD9") определены как ГСЧ.
В настоящее время, если результаты соответствуют ему, просто удаляются все ячейки, включая совпадение.
У кого-нибудь есть идея, как легко исправить? я бы предпочел бы что-то, что бы не отменило код, применив к каждой ячейке и т. д.
Спасибо, мне нужно, чтобы он мог ссылаться на активную ячейку (то есть, если выбрано B9, мне нужно условное форматирование, которое должно быть применимо на B9, не ссылающееся на B6, которое находится в верхнем левом углу) –
теперь работает, но он выделяет ВСЕ в диапазоне белого цвета, когда положительный результат найден не только в результате. любые дальнейшие предложения? –
Мне нужно будет обработать более полное рабочее место. Мне кажется, что проблема может заключаться в назначении формулы. Если вы применяете это правило CF к B6: GD9, формула должна начинаться как '= FINDCOMMENT (B6, $ X $ 1)', что я, хотя я вам дал. Правило CF корректирует его * относительно * верхней левой ячейки в поле «Применяется к:». По существу, формула должна быть одинаковой для всех ячеек в стиле xlR1C1; например, '= FINDCOMMENT (RC, R1C24)'. Есть ли способ, которым FINDCOMMENT является ошибкой во всем? Вы возвращаете True при ошибке. – Jeeped