#vba #excel
#vba #excel
Вопрос:
Есть ли способ удалить условное форматирование в ячейке, только если в ней есть определенная формула?
Прямо сейчас у меня есть
Cells(r, 4).Select
With Selection
.FormatConditions.Item(1).Delete
End With
Но я хочу, чтобы оно удаляло форматирование только в том случае, если формула
="=ISBLANK(A19)=TRUE"
Кто-нибудь знает, возможно ли это?
Ответ №1:
Sub Tester()
ClearFormulaCF Range("A1:A5"), "=ISBLANK(A19)=TRUE"
End Sub
'Remove any CF rule from cells in rng where the CF formula
' matches the one provided
Sub ClearFormulaCF(rng As Range, sFormula As String)
Dim rngCF As Range, c As Range, fc As FormatCondition
On Error Resume Next
'any cells with CF?
Set rngCF = rng.SpecialCells(xlCellTypeAllFormatConditions)
On Error GoTo 0
If rngCF Is Nothing Then Exit Sub 'no CF found
For Each c In rngCF.Cells
For Each fc In c.FormatConditions
If fc.Formula1 = sFormula Then
fc.Delete
Exit For
End If
Next fc
Next c
End Sub
Комментарии:
1. Привет, спасибо, Тим, извини, что не ответил ранее, я был занят другими делами. Могу я задать вопрос? Каков порядок операций здесь? Если я попадаю на ячейку, вызываю ли я Sub Tester, а затем Sub ClearFormulaCF? Или Tester вызывался ранее?
2. «Tester» — это просто замена вашего фактического кода, чтобы продемонстрировать, как вы будете использовать
ClearFormulaCF