Редактирование формул условного форматирования - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно сгенерировать код VBA для редактирования существующих формул, используемых для условного форматирования.

Если у меня в настоящий момент есть:

enter image description here

Мне нужно VBA, чтобы изменить его на:

enter image description here

Что я пробовал до сих пор:

FormString = "=IFERROR(FIND(""that"",A1),FALSE)"
For Each fc In FormulaSheet.UsedRange.FormatConditions
    If TypeName(fc) = "FormulaString" Then
        fc.Formula1 = FormString 
    End If
Next fc

Вышеприведенный код работает,но ничего не меняет.

Я знаю, как создать новое условие с формулой (используя Range("A1").FormatConditions.Add Type:=xlExpression, Formula1:=FormString)

Но как только оно будет создано, я не смогуизмените формулу с помощью VBA.

Моя проблема в том, что я получаю рабочие листы с большим количеством условий и мне нужно редактировать формулы, но больше ничего не трогать.Я мог бы сохранить все параметры, удалить условия и воссоздать их с новыми формулами, но это кажется очень неэффективным способом сделать это

1 Ответ

0 голосов
/ 01 апреля 2019

Чувак, у меня есть функция VBA, которая создает "SumIf" на основе цвета ячейки.Вы можете адаптировать его к вашим потребностям.Веселитесь:

Function SOMACOR(Referência As Range, Matriz As Range, Fonte As Boolean)

Application.Volatile

Dim rCell As Range
Dim rCor As Long
Dim rResult As Variant

    If Fonte = False Then
        rCor = Referência.Interior.ColorIndex

        For Each rCell In Matriz
            If rCell.Interior.ColorIndex = rCor Then
                rResult = WorksheetFunction.SUM(rCell, rResult)
            End If
        Next rCell
    Else
        rCor = Referência.Font.ColorIndex

        For Each rCell In Matriz
            If rCell.Font.ColorIndex = rCor Then
                rResult = WorksheetFunction.SUM(rCell, rResult)
            End If
        Next rCell
    End If

    SOMACOR = rResult

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...