Como posso modificar a propriedade “Aplica-se a” da regra de formatação condicional de uma célula usando o VBA?

0

Estou tentando usar o VBA para criar uma regra de formatação condicional e aplicá-la a várias células.

Eu tentei isso é criando as regras para uma única célula e, em seguida, editando a propriedade do aplicativo para cada objeto de condição de formato. Veja aqui:

Sub test()

    Dim strRange As String
    Dim myRange As Range

    strRange = "$B$4,$B$9:$BS$9"

    With Sheets("Sheet1").Range("B4") 
        .FormatConditions.Delete
        .FormatConditions.Add xlExpression, xlEqual, "=ISBLANK(RC)"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).StopIfTrue = True
        .FormatConditions(1).AppliesTo = strRange
    End With


    End Sub

Isso não parece funcionar porque, uma vez que atinge a linha AppliesTo, ele realmente altera o valor da própria célula em vez de modificar a propriedade AppliesTo do formato.

Qual é a melhor maneira de modificar a propriedade "Aplica-se a" da regra de formatação condicional de uma célula?

Eu sei que posso modificar minha instrução "com" para incluir as outras células que desejo modificar; não apenas a célula B4. O problema com isso é que o objeto range () só pode aceitar um argumento de string que não tenha mais que 1024 caracteres. E, na verdade, quero aplicar essa regra a um grande número de células não contíguas que quebram o limite de 1024 caracteres.

    
por dutsnekcirf 08.08.2018 / 19:27

1 resposta

1

Há um método ModifyAppliesToRange projetado para essa finalidade . Você também precisará converter strRange em um objeto Range.

Substituir %código% com .FormatConditions(1).AppliesTo = strRange

    
por 08.08.2018 / 21:33